UNPKG

puppeteer-shadow-selector

Version:
29 lines (28 loc) 1.19 kB
"use strict"; exports.__esModule = true; exports.$ = void 0; var logical_not_1 = require("logical-not"); var selector_1 = require("./selector"); function $(page, selector) { var parsedSelector = selector_1.parse(selector); if (logical_not_1.not(parsedSelector)) return page.$(selector); return page.waitForSelector(parsedSelector.mainSelector).then(function () { return page .evaluateHandle(function (selectorSource) { return query(JSON.parse(selectorSource), document); function query(selector, context) { var _a; var shadowRoot = (_a = context.querySelector(selector.mainSelector)) === null || _a === void 0 ? void 0 : _a.shadowRoot; if (!shadowRoot) return null; if (typeof selector.shadowDOMSelector === "string") return shadowRoot.querySelector(selector.shadowDOMSelector); else return query(selector.shadowDOMSelector, shadowRoot); } }, JSON.stringify(parsedSelector)) .then(function (source) { return source.asElement(); }); }); } exports.$ = $;