UNPKG

@testplane/webdriverio

Version:

Next-gen browser and mobile automation test framework for Node.js

27 lines (26 loc) 4.51 kB
// src/scripts/getHTMLShadow.ts function getHTMLShadow(element, includeSelectorTag, shadowElementIds = []) { shadowElementIds.map(([id, elem]) => { if (typeof elem.setAttribute !== "function") { return; } elem.setAttribute("data-wdio-shadow-id", id); }); const shadowElementHTML = shadowElementIds.map(([id, elem, shadow]) => { if (!shadow) { const html2 = elem[includeSelectorTag ? "outerHTML" : "innerHTML"]; return { id, html: html2 }; } const styles = Array.from(shadow.adoptedStyleSheets || []).map(({ cssRules }) => Array.from(cssRules)).flat().map(({ cssText }) => cssText); const html = shadow.innerHTML; return { id, html, styles }; }); return { html: element[includeSelectorTag ? "outerHTML" : "innerHTML"], shadowElementHTML }; } export { getHTMLShadow as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvZ2V0SFRNTFNoYWRvdy50cyJdLAogICJzb3VyY2VSb290IjogIi9Vc2Vycy9rcm9tYW41MTIvZ2VtaW5pLXRlc3Rpbmcvd2ViZHJpdmVyaW8vcGFja2FnZXMvd2ViZHJpdmVyaW8iLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBnZXQgSFRNTCBvZiBhbGwgc2hhZG93IHJvb3RzXG4gKlxuICogQHBhcmFtICB7c3RyaW5nfSAgZWxlbWVudCAgICAgICAgICAgICAgIGVsZW1lbnQgdG8gZ2V0IEhUTUwgZnJvbVxuICogQHBhcmFtICB7Qm9vbGVhbn0gaW5jbHVkZVNlbGVjdG9yVGFnICAgIGlmIHRydWUsIHNlbGVjdG9yIHRhZyBnZXRzIGluY2x1ZGVkICh1c2VzIG91dGVySFRNTClcbiAqIEBwYXJhbSAge09iamVjdH0gIHNoYWRvd0VsZW1lbnRJZHNGb3VuZCBsaXN0IG9mIHNoYWRvdyByb290IGlkcyB3ZSB3YW50IHRvIGxvb2sgdXAgaW4gdGhlIG5leHQgaXRlcmF0aW9uXG4gKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCBzb3VyY2UgYW5kIGxpc3Qgb2Ygc2hhZG93IHJvb3QgaWRzIGZvdW5kXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEhUTUxTaGFkb3cgKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU2hhZG93Um9vdCxcbiAgICBpbmNsdWRlU2VsZWN0b3JUYWc6IGJvb2xlYW4sXG4gICAgc2hhZG93RWxlbWVudElkczogW3N0cmluZywgSFRNTEVsZW1lbnQsIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXVtdID0gW11cbikge1xuICAgIHNoYWRvd0VsZW1lbnRJZHMubWFwKChbaWQsIGVsZW1dKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBpZiB3ZSBkb24ndCBoYXZlIGEgc2hhZG93IHJvb3QgKGUuZy4gbW9zdCBsaWtlbHkgdG8gYmUgdGhlIHJvb3QgZG9jdW1lbnQgbm9kZSlcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0eXBlb2YgZWxlbS5zZXRBdHRyaWJ1dGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgZWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtd2Rpby1zaGFkb3ctaWQnLCBpZClcbiAgICB9KVxuXG4gICAgY29uc3Qgc2hhZG93RWxlbWVudEhUTUwgPSBzaGFkb3dFbGVtZW50SWRzLm1hcCgoW2lkLCBlbGVtLCBzaGFkb3ddKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBpZiB3ZSBkb24ndCBoYXZlIGEgc2hhZG93IHJvb3QgKGUuZy4gbW9zdCBsaWtlbHkgdG8gYmUgdGhlIHJvb3QgZG9jdW1lbnQgbm9kZSlcbiAgICAgICAgICogd2UganVzdCBnZXQgdGhlIGh0bWwgb2YgdGhlIGVsZW1lbnRcbiAgICAgICAgICovXG4gICAgICAgIGlmICghc2hhZG93KSB7XG4gICAgICAgICAgICBjb25zdCBodG1sID0gZWxlbVtpbmNsdWRlU2VsZWN0b3JUYWcgPyAnb3V0ZXJIVE1MJyA6ICdpbm5lckhUTUwnXVxuICAgICAgICAgICAgcmV0dXJuIHsgaWQsIGh0bWwgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG90aGVyd2lzZSwgd2UgbG9vayB1cCB0aGUgcmVnaXN0ZXJlZCBzaGFkb3cgc3R5bGVzIGFuZCBodG1sXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzdHlsZXMgPSBBcnJheS5mcm9tKChzaGFkb3cgYXMgdW5rbm93biBhcyBTaGFkb3dSb290KS5hZG9wdGVkU3R5bGVTaGVldHMgfHwgW10pXG4gICAgICAgICAgICAubWFwKCh7IGNzc1J1bGVzIH0pID0+IEFycmF5LmZyb20oY3NzUnVsZXMpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCgoeyBjc3NUZXh0IH0pID0+IGNzc1RleHQpXG5cbiAgICAgICAgY29uc3QgaHRtbCA9IHNoYWRvdy5pbm5lckhUTUxcbiAgICAgICAgcmV0dXJuIHsgaWQsIGh0bWwsIHN0eWxlcyB9XG4gICAgfSlcblxuICAgIHJldHVybiB7XG4gICAgICAgIGh0bWw6IChlbGVtZW50IGFzIEhUTUxFbGVtZW50KVtpbmNsdWRlU2VsZWN0b3JUYWcgPyAnb3V0ZXJIVE1MJyA6ICdpbm5lckhUTUwnXSxcbiAgICAgICAgc2hhZG93RWxlbWVudEhUTUxcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBUWUsU0FBUixjQUNILFNBQ0Esb0JBQ0EsbUJBQXFFLENBQUMsR0FDeEU7QUFDRSxtQkFBaUIsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU07QUFJakMsUUFBSSxPQUFPLEtBQUssaUJBQWlCLFlBQVk7QUFDekM7QUFBQSxJQUNKO0FBRUEsU0FBSyxhQUFhLHVCQUF1QixFQUFFO0FBQUEsRUFDL0MsQ0FBQztBQUVELFFBQU0sb0JBQW9CLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxJQUFJLE1BQU0sTUFBTSxNQUFNO0FBS25FLFFBQUksQ0FBQyxRQUFRO0FBQ1QsWUFBTUEsUUFBTyxLQUFLLHFCQUFxQixjQUFjLFdBQVc7QUFDaEUsYUFBTyxFQUFFLElBQUksTUFBQUEsTUFBSztBQUFBLElBQ3RCO0FBS0EsVUFBTSxTQUFTLE1BQU0sS0FBTSxPQUFpQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQy9FLElBQUksQ0FBQyxFQUFFLFNBQVMsTUFBTSxNQUFNLEtBQUssUUFBUSxDQUFDLEVBQzFDLEtBQUssRUFDTCxJQUFJLENBQUMsRUFBRSxRQUFRLE1BQU0sT0FBTztBQUVqQyxVQUFNLE9BQU8sT0FBTztBQUNwQixXQUFPLEVBQUUsSUFBSSxNQUFNLE9BQU87QUFBQSxFQUM5QixDQUFDO0FBRUQsU0FBTztBQUFBLElBQ0gsTUFBTyxRQUF3QixxQkFBcUIsY0FBYyxXQUFXO0FBQUEsSUFDN0U7QUFBQSxFQUNKO0FBQ0o7IiwKICAibmFtZXMiOiBbImh0bWwiXQp9Cg==