mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
docs(queryhandler): add custom query handler docs (#6476)
This commit is contained in:
parent
70ed875158
commit
cc7f1fd063
21
new-docs/puppeteer.customqueryhandler.md
Normal file
21
new-docs/puppeteer.customqueryhandler.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [CustomQueryHandler](./puppeteer.customqueryhandler.md)
|
||||||
|
|
||||||
|
## CustomQueryHandler interface
|
||||||
|
|
||||||
|
Contains two functions `queryOne` and `queryAll` that can be [registered](./puppeteer.puppeteer.__experimental_registercustomqueryhandler.md) as alternative querying strategies. The functions `queryOne` and `queryAll` are executed in the page context. `queryOne` should take an `Element` and a selector string as argument and return a single `Element` or `null` if no element is found. `queryAll` takes the same arguments but should instead return a `NodeListOf<Element>` or `Array<Element>` with all the elements that match the given query selector.
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
export interface CustomQueryHandler
|
||||||
|
```
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
| Property | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| [queryAll](./puppeteer.customqueryhandler.queryall.md) | (element: Element \| Document, selector: string) => Element\[\] \| NodeListOf<Element> | |
|
||||||
|
| [queryOne](./puppeteer.customqueryhandler.queryone.md) | (element: Element \| Document, selector: string) => Element \| null | |
|
||||||
|
|
11
new-docs/puppeteer.customqueryhandler.queryall.md
Normal file
11
new-docs/puppeteer.customqueryhandler.queryall.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [CustomQueryHandler](./puppeteer.customqueryhandler.md) > [queryAll](./puppeteer.customqueryhandler.queryall.md)
|
||||||
|
|
||||||
|
## CustomQueryHandler.queryAll property
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
queryAll?: (element: Element | Document, selector: string) => Element[] | NodeListOf<Element>;
|
||||||
|
```
|
11
new-docs/puppeteer.customqueryhandler.queryone.md
Normal file
11
new-docs/puppeteer.customqueryhandler.queryone.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [CustomQueryHandler](./puppeteer.customqueryhandler.md) > [queryOne](./puppeteer.customqueryhandler.queryone.md)
|
||||||
|
|
||||||
|
## CustomQueryHandler.queryOne property
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
queryOne?: (element: Element | Document, selector: string) => Element | null;
|
||||||
|
```
|
@ -59,6 +59,7 @@
|
|||||||
| [CoverageEntry](./puppeteer.coverageentry.md) | The CoverageEntry class represents one entry of the coverage report. |
|
| [CoverageEntry](./puppeteer.coverageentry.md) | The CoverageEntry class represents one entry of the coverage report. |
|
||||||
| [Credentials](./puppeteer.credentials.md) | |
|
| [Credentials](./puppeteer.credentials.md) | |
|
||||||
| [CSSCoverageOptions](./puppeteer.csscoverageoptions.md) | Set of configurable options for CSS coverage. |
|
| [CSSCoverageOptions](./puppeteer.csscoverageoptions.md) | Set of configurable options for CSS coverage. |
|
||||||
|
| [CustomQueryHandler](./puppeteer.customqueryhandler.md) | Contains two functions <code>queryOne</code> and <code>queryAll</code> that can be [registered](./puppeteer.puppeteer.__experimental_registercustomqueryhandler.md) as alternative querying strategies. The functions <code>queryOne</code> and <code>queryAll</code> are executed in the page context. <code>queryOne</code> should take an <code>Element</code> and a selector string as argument and return a single <code>Element</code> or <code>null</code> if no element is found. <code>queryAll</code> takes the same arguments but should instead return a <code>NodeListOf<Element></code> or <code>Array<Element></code> with all the elements that match the given query selector. |
|
||||||
| [FrameAddScriptTagOptions](./puppeteer.frameaddscripttagoptions.md) | |
|
| [FrameAddScriptTagOptions](./puppeteer.frameaddscripttagoptions.md) | |
|
||||||
| [FrameAddStyleTagOptions](./puppeteer.frameaddstyletagoptions.md) | |
|
| [FrameAddStyleTagOptions](./puppeteer.frameaddstyletagoptions.md) | |
|
||||||
| [FrameWaitForFunctionOptions](./puppeteer.framewaitforfunctionoptions.md) | |
|
| [FrameWaitForFunctionOptions](./puppeteer.framewaitforfunctionoptions.md) | |
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [Puppeteer](./puppeteer.puppeteer.md) > [\_\_experimental\_clearQueryHandlers](./puppeteer.puppeteer.__experimental_clearqueryhandlers.md)
|
||||||
|
|
||||||
|
## Puppeteer.\_\_experimental\_clearQueryHandlers() method
|
||||||
|
|
||||||
|
Clears all registered handlers.
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
__experimental_clearQueryHandlers(): void;
|
||||||
|
```
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
void
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [Puppeteer](./puppeteer.puppeteer.md) > [\_\_experimental\_customQueryHandlerNames](./puppeteer.puppeteer.__experimental_customqueryhandlernames.md)
|
||||||
|
|
||||||
|
## Puppeteer.\_\_experimental\_customQueryHandlerNames() method
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
__experimental_customQueryHandlerNames(): string[];
|
||||||
|
```
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
string\[\]
|
||||||
|
|
||||||
|
a list with the names of all registered custom query handlers.
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [Puppeteer](./puppeteer.puppeteer.md) > [\_\_experimental\_registerCustomQueryHandler](./puppeteer.puppeteer.__experimental_registercustomqueryhandler.md)
|
||||||
|
|
||||||
|
## Puppeteer.\_\_experimental\_registerCustomQueryHandler() method
|
||||||
|
|
||||||
|
Registers a [custom query handler](./puppeteer.customqueryhandler.md)<!-- -->. After registration, the handler can be used everywhere where a selector is expected by prepending the selection string with `<name>/`<!-- -->. The name is only allowed to consist of lower- and upper case latin letters.
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
__experimental_registerCustomQueryHandler(name: string, queryHandler: CustomQueryHandler): void;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| name | string | The name that the custom query handler will be registered under. |
|
||||||
|
| queryHandler | [CustomQueryHandler](./puppeteer.customqueryhandler.md) | The [custom query handler](./puppeteer.customqueryhandler.md) to register. |
|
||||||
|
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
void
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
puppeteer.registerCustomQueryHandler('text', { … });
|
||||||
|
const aHandle = await page.$('text/…');
|
||||||
|
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,22 @@
|
|||||||
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
||||||
|
|
||||||
|
[Home](./index.md) > [puppeteer](./puppeteer.md) > [Puppeteer](./puppeteer.puppeteer.md) > [\_\_experimental\_unregisterCustomQueryHandler](./puppeteer.puppeteer.__experimental_unregistercustomqueryhandler.md)
|
||||||
|
|
||||||
|
## Puppeteer.\_\_experimental\_unregisterCustomQueryHandler() method
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
__experimental_unregisterCustomQueryHandler(name: string): void;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
| Parameter | Type | Description |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| name | string | The name of the query handler to unregistered. |
|
||||||
|
|
||||||
|
<b>Returns:</b>
|
||||||
|
|
||||||
|
void
|
||||||
|
|
@ -48,6 +48,10 @@ Once you have created a `page` you have access to a large API to interact with t
|
|||||||
|
|
||||||
| Method | Modifiers | Description |
|
| Method | Modifiers | Description |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
|
| [\_\_experimental\_clearQueryHandlers()](./puppeteer.puppeteer.__experimental_clearqueryhandlers.md) | | Clears all registered handlers. |
|
||||||
|
| [\_\_experimental\_customQueryHandlerNames()](./puppeteer.puppeteer.__experimental_customqueryhandlernames.md) | | |
|
||||||
|
| [\_\_experimental\_registerCustomQueryHandler(name, queryHandler)](./puppeteer.puppeteer.__experimental_registercustomqueryhandler.md) | | Registers a [custom query handler](./puppeteer.customqueryhandler.md)<!-- -->. After registration, the handler can be used everywhere where a selector is expected by prepending the selection string with <code><name>/</code>. The name is only allowed to consist of lower- and upper case latin letters. |
|
||||||
|
| [\_\_experimental\_unregisterCustomQueryHandler(name)](./puppeteer.puppeteer.__experimental_unregistercustomqueryhandler.md) | | |
|
||||||
| [connect(options)](./puppeteer.puppeteer.connect.md) | | This method attaches Puppeteer to an existing browser instance. |
|
| [connect(options)](./puppeteer.puppeteer.connect.md) | | This method attaches Puppeteer to an existing browser instance. |
|
||||||
| [createBrowserFetcher(options)](./puppeteer.puppeteer.createbrowserfetcher.md) | | |
|
| [createBrowserFetcher(options)](./puppeteer.puppeteer.createbrowserfetcher.md) | | |
|
||||||
| [defaultArgs(options)](./puppeteer.puppeteer.defaultargs.md) | | |
|
| [defaultArgs(options)](./puppeteer.puppeteer.defaultargs.md) | | |
|
||||||
|
@ -57,4 +57,5 @@ export * from './common/EvalTypes.js';
|
|||||||
export * from './common/PDFOptions.js';
|
export * from './common/PDFOptions.js';
|
||||||
export * from './common/TimeoutSettings.js';
|
export * from './common/TimeoutSettings.js';
|
||||||
export * from './common/LifecycleWatcher.js';
|
export * from './common/LifecycleWatcher.js';
|
||||||
|
export * from './common/QueryHandler.js';
|
||||||
export * from 'devtools-protocol/types/protocol';
|
export * from 'devtools-protocol/types/protocol';
|
||||||
|
@ -284,7 +284,18 @@ export class Puppeteer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* Registers a {@link CustomQueryHandler | custom query handler}. After
|
||||||
|
* registration, the handler can be used everywhere where a selector is
|
||||||
|
* expected by prepending the selection string with `<name>/`. The name is
|
||||||
|
* only allowed to consist of lower- and upper case latin letters.
|
||||||
|
* @example
|
||||||
|
* ```
|
||||||
|
* puppeteer.registerCustomQueryHandler('text', { … });
|
||||||
|
* const aHandle = await page.$('text/…');
|
||||||
|
* ```
|
||||||
|
* @param name - The name that the custom query handler will be registered under.
|
||||||
|
* @param queryHandler - The {@link CustomQueryHandler | custom query handler} to
|
||||||
|
* register.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/camelcase
|
// eslint-disable-next-line @typescript-eslint/camelcase
|
||||||
__experimental_registerCustomQueryHandler(
|
__experimental_registerCustomQueryHandler(
|
||||||
@ -295,7 +306,7 @@ export class Puppeteer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @param name - The name of the query handler to unregistered.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/camelcase
|
// eslint-disable-next-line @typescript-eslint/camelcase
|
||||||
__experimental_unregisterCustomQueryHandler(name: string): void {
|
__experimental_unregisterCustomQueryHandler(name: string): void {
|
||||||
@ -303,7 +314,7 @@ export class Puppeteer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @returns a list with the names of all registered custom query handlers.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/camelcase
|
// eslint-disable-next-line @typescript-eslint/camelcase
|
||||||
__experimental_customQueryHandlerNames(): string[] {
|
__experimental_customQueryHandlerNames(): string[] {
|
||||||
@ -311,7 +322,7 @@ export class Puppeteer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* Clears all registered handlers.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/camelcase
|
// eslint-disable-next-line @typescript-eslint/camelcase
|
||||||
__experimental_clearQueryHandlers(): void {
|
__experimental_clearQueryHandlers(): void {
|
||||||
|
@ -41,6 +41,17 @@ export interface InternalQueryHandler {
|
|||||||
) => Promise<JSHandle>;
|
) => Promise<JSHandle>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains two functions `queryOne` and `queryAll` that can
|
||||||
|
* be {@link Puppeteer.__experimental_registerCustomQueryHandler | registered}
|
||||||
|
* as alternative querying strategies. The functions `queryOne` and `queryAll`
|
||||||
|
* are executed in the page context. `queryOne` should take an `Element` and a
|
||||||
|
* selector string as argument and return a single `Element` or `null` if no
|
||||||
|
* element is found. `queryAll` takes the same arguments but should instead
|
||||||
|
* return a `NodeListOf<Element>` or `Array<Element>` with all the elements
|
||||||
|
* that match the given query selector.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
export interface CustomQueryHandler {
|
export interface CustomQueryHandler {
|
||||||
queryOne?: (element: Element | Document, selector: string) => Element | null;
|
queryOne?: (element: Element | Document, selector: string) => Element | null;
|
||||||
queryAll?: (
|
queryAll?: (
|
||||||
@ -104,6 +115,9 @@ const _defaultHandler = makeQueryHandler({
|
|||||||
const _builtInHandlers = new Map([['aria', ariaHandler]]);
|
const _builtInHandlers = new Map([['aria', ariaHandler]]);
|
||||||
const _queryHandlers = new Map(_builtInHandlers);
|
const _queryHandlers = new Map(_builtInHandlers);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
export function registerCustomQueryHandler(
|
export function registerCustomQueryHandler(
|
||||||
name: string,
|
name: string,
|
||||||
handler: CustomQueryHandler
|
handler: CustomQueryHandler
|
||||||
@ -121,7 +135,7 @@ export function registerCustomQueryHandler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name
|
* @internal
|
||||||
*/
|
*/
|
||||||
export function unregisterCustomQueryHandler(name: string): void {
|
export function unregisterCustomQueryHandler(name: string): void {
|
||||||
if (_queryHandlers.has(name) && !_builtInHandlers.has(name)) {
|
if (_queryHandlers.has(name) && !_builtInHandlers.has(name)) {
|
||||||
@ -129,16 +143,25 @@ export function unregisterCustomQueryHandler(name: string): void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
export function customQueryHandlerNames(): string[] {
|
export function customQueryHandlerNames(): string[] {
|
||||||
return [..._queryHandlers.keys()].filter(
|
return [..._queryHandlers.keys()].filter(
|
||||||
(name) => !_builtInHandlers.has(name)
|
(name) => !_builtInHandlers.has(name)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
export function clearCustomQueryHandlers(): void {
|
export function clearCustomQueryHandlers(): void {
|
||||||
customQueryHandlerNames().forEach(unregisterCustomQueryHandler);
|
customQueryHandlerNames().forEach(unregisterCustomQueryHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
export function getQueryHandlerAndSelector(
|
export function getQueryHandlerAndSelector(
|
||||||
selector: string
|
selector: string
|
||||||
): { updatedSelector: string; queryHandler: InternalQueryHandler } {
|
): { updatedSelector: string; queryHandler: InternalQueryHandler } {
|
||||||
|
Loading…
Reference in New Issue
Block a user