diff options
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/common/XPathQueryHandler.ts')
-rw-r--r-- | remote/test/puppeteer/packages/puppeteer-core/src/common/XPathQueryHandler.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/common/XPathQueryHandler.ts b/remote/test/puppeteer/packages/puppeteer-core/src/common/XPathQueryHandler.ts new file mode 100644 index 0000000000..b6e3a67bad --- /dev/null +++ b/remote/test/puppeteer/packages/puppeteer-core/src/common/XPathQueryHandler.ts @@ -0,0 +1,35 @@ +/** + * @license + * Copyright 2023 Google Inc. + * SPDX-License-Identifier: Apache-2.0 + */ + +import { + QueryHandler, + type QuerySelectorAll, + type QuerySelector, +} from './QueryHandler.js'; + +/** + * @internal + */ +export class XPathQueryHandler extends QueryHandler { + static override querySelectorAll: QuerySelectorAll = ( + element, + selector, + {xpathQuerySelectorAll} + ) => { + return xpathQuerySelectorAll(element, selector); + }; + + static override querySelector: QuerySelector = ( + element: Node, + selector: string, + {xpathQuerySelectorAll} + ) => { + for (const result of xpathQuerySelectorAll(element, selector, 1)) { + return result; + } + return null; + }; +} |