@testplane/webdriverio
Version:
Next-gen browser and mobile automation test framework for Node.js
21 lines (20 loc) • 1.87 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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvc2hhZG93Rm5GYWN0b3J5LnRzIl0sCiAgInNvdXJjZVJvb3QiOiAiL1VzZXJzL2tyb21hbjUxMi9nZW1pbmktdGVzdGluZy93ZWJkcml2ZXJpby9wYWNrYWdlcy93ZWJkcml2ZXJpbyIsCiAgInNvdXJjZXNDb250ZW50IjogWyIvLyBnZW5lcmF0ZSBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gcXVlcnkgc2hhZG93Um9vdHNcbmV4cG9ydCBjb25zdCBzaGFkb3dGbkZhY3RvcnkgPSBmdW5jdGlvbihlbGVtZW50U2VsZWN0b3I6IHN0cmluZywgcXNBbGwgPSBmYWxzZSkge1xuICAgIGNvbnN0IHN0ckZuID0gLypqcyovYFxuICAgIChmdW5jdGlvbigpIHtcbiAgICAgIC8vIGVsZW1lbnQgaGFzIGEgc2hhZG93Um9vdCBwcm9wZXJ0eVxuICAgICAgaWYgKHRoaXMuc2hhZG93Um9vdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Ike3FzQWxsID8gJ0FsbCcgOiAnJ30oJyR7ZWxlbWVudFNlbGVjdG9yfScpXG4gICAgICB9XG4gICAgICAvLyBmYWxsIGJhY2sgdG8gcXVlcnlpbmcgdGhlIGVsZW1lbnQgZGlyZWN0bHkgaWYgbm90XG4gICAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yJHtxc0FsbCA/ICdBbGwnIDogJyd9KCcke2VsZW1lbnRTZWxlY3Rvcn0nKVxuICAgIH0pYFxuICAgIHJldHVybiAoMCwgZXZhbCkoc3RyRm4pXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ08sSUFBTSxrQkFBa0IsU0FBUyxpQkFBeUIsUUFBUSxPQUFPO0FBQzVFLFFBQU07QUFBQTtBQUFBLElBQWM7QUFBQTtBQUFBO0FBQUE7QUFBQSw4Q0FJc0IsUUFBUSxRQUFRLEVBQUUsS0FBSyxlQUFlO0FBQUE7QUFBQTtBQUFBLGlDQUduRCxRQUFRLFFBQVEsRUFBRSxLQUFLLGVBQWU7QUFBQTtBQUFBO0FBRW5FLFVBQVEsR0FBRyxNQUFNLEtBQUs7QUFDMUI7IiwKICAibmFtZXMiOiBbXQp9Cg==