summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/common/XPathQueryHandler.ts
diff options
context:
space:
mode:
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.ts35
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;
+ };
+}