@testplane/webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
21 lines (20 loc) • 1.88 kB
JavaScript
// src/scripts/shadowFnFactory.ts
var shadowFnFactory = function(elementSelector, qsAll = false) {
const strFn = (
/*js*/
`
(function() {
// element has a shadowRoot property
if (this.shadowRoot) {
return this.shadowRoot.querySelector${qsAll ? "All" : ""}('${elementSelector}')
}
// fall back to querying the element directly if not
return this.querySelector${qsAll ? "All" : ""}('${elementSelector}')
})`
);
return (0, eval)(strFn);
};
export {
shadowFnFactory
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvc2hhZG93Rm5GYWN0b3J5LnRzIl0sCiAgInNvdXJjZVJvb3QiOiAiL1VzZXJzL2R1ZGtldmljaC9qb2IvcHJvamVjdHMvZ2VtaW5pLXRlc3Rpbmcvd2ViZHJpdmVyaW8vcGFja2FnZXMvd2ViZHJpdmVyaW8iLAogICJzb3VyY2VzQ29udGVudCI6IFsiLy8gZ2VuZXJhdGUgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHF1ZXJ5IHNoYWRvd1Jvb3RzXG5leHBvcnQgY29uc3Qgc2hhZG93Rm5GYWN0b3J5ID0gZnVuY3Rpb24oZWxlbWVudFNlbGVjdG9yOiBzdHJpbmcsIHFzQWxsID0gZmFsc2UpIHtcbiAgICBjb25zdCBzdHJGbiA9IC8qanMqL2BcbiAgICAoZnVuY3Rpb24oKSB7XG4gICAgICAvLyBlbGVtZW50IGhhcyBhIHNoYWRvd1Jvb3QgcHJvcGVydHlcbiAgICAgIGlmICh0aGlzLnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yJHtxc0FsbCA/ICdBbGwnIDogJyd9KCcke2VsZW1lbnRTZWxlY3Rvcn0nKVxuICAgICAgfVxuICAgICAgLy8gZmFsbCBiYWNrIHRvIHF1ZXJ5aW5nIHRoZSBlbGVtZW50IGRpcmVjdGx5IGlmIG5vdFxuICAgICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvciR7cXNBbGwgPyAnQWxsJyA6ICcnfSgnJHtlbGVtZW50U2VsZWN0b3J9JylcbiAgICB9KWBcbiAgICByZXR1cm4gKDAsIGV2YWwpKHN0ckZuKVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNPLElBQU0sa0JBQWtCLFNBQVMsaUJBQXlCLFFBQVEsT0FBTztBQUM1RSxRQUFNO0FBQUE7QUFBQSxJQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsOENBSXNCLFFBQVEsUUFBUSxFQUFFLEtBQUssZUFBZTtBQUFBO0FBQUE7QUFBQSxpQ0FHbkQsUUFBUSxRQUFRLEVBQUUsS0FBSyxlQUFlO0FBQUE7QUFBQTtBQUVuRSxVQUFRLEdBQUcsTUFBTSxLQUFLO0FBQzFCOyIsCiAgIm5hbWVzIjogW10KfQo=