UNPKG

@testplane/webdriverio

Version:

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

36 lines (35 loc) 5.19 kB
// src/scripts/customElement.ts function customElementWrapper() { const origFn = customElements.define.bind(customElements); customElements.define = function(name, Constructor, options) { const origConnectedCallback = Constructor.prototype.connectedCallback; Constructor.prototype.connectedCallback = function() { let parentNode = this; while (parentNode.parentNode) { parentNode = parentNode.parentNode; } console.debug("[WDIO]", "newShadowRoot", this, parentNode, parentNode === document, document.documentElement); return origConnectedCallback?.call(this); }; const origDisconnectedCallback = Constructor.prototype.disconnectedCallback; Constructor.prototype.disconnectedCallback = function() { console.debug("[WDIO]", "removeShadowRoot", this); return origDisconnectedCallback?.call(this); }; return origFn(name, Constructor, options); }; const origAttachShadow = Element.prototype.attachShadow; Element.prototype.attachShadow = function(init) { const shadowRoot = origAttachShadow.call(this, init); let parentNode = this; while (parentNode.parentNode) { parentNode = parentNode.parentNode; } console.debug("[WDIO]", "newShadowRoot", this, parentNode, parentNode === document, document.documentElement); return shadowRoot; }; } export { customElementWrapper as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvY3VzdG9tRWxlbWVudC50cyJdLAogICJzb3VyY2VSb290IjogIi9Vc2Vycy9rcm9tYW41MTIvZ2VtaW5pLXRlc3Rpbmcvd2ViZHJpdmVyaW8vcGFja2FnZXMvd2ViZHJpdmVyaW8iLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW50ZXJmYWNlIEVuaGFuY2VkSFRNTEVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gICAgY29ubmVjdGVkQ2FsbGJhY2s/KCk6IHZvaWQ7XG4gICAgZGlzY29ubmVjdGVkQ2FsbGJhY2s/KCk6IHZvaWQ7XG59XG5cbmludGVyZmFjZSBDdXN0b21FbGVtZW50Q29uc3RydWN0b3Ige1xuICAgIG5ldyAoLi4ucGFyYW1zOiB1bmtub3duW10pOiBFbmhhbmNlZEhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjdXN0b21FbGVtZW50V3JhcHBlciAoKSB7XG4gICAgY29uc3Qgb3JpZ0ZuID0gY3VzdG9tRWxlbWVudHMuZGVmaW5lLmJpbmQoY3VzdG9tRWxlbWVudHMpXG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lID0gZnVuY3Rpb24obmFtZTogc3RyaW5nLCBDb25zdHJ1Y3RvcjogQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yLCBvcHRpb25zPzogRWxlbWVudERlZmluaXRpb25PcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9yaWdDb25uZWN0ZWRDYWxsYmFjayA9IENvbnN0cnVjdG9yLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFja1xuICAgICAgICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2sgPSBmdW5jdGlvbih0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU6IFBhcmVudE5vZGUgfCBudWxsID0gdGhpc1xuICAgICAgICAgICAgd2hpbGUgKHBhcmVudE5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1tXRElPXScsICduZXdTaGFkb3dSb290JywgdGhpcywgcGFyZW50Tm9kZSwgcGFyZW50Tm9kZSA9PT0gZG9jdW1lbnQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudClcbiAgICAgICAgICAgIHJldHVybiBvcmlnQ29ubmVjdGVkQ2FsbGJhY2s/LmNhbGwodGhpcylcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9yaWdEaXNjb25uZWN0ZWRDYWxsYmFjayA9IENvbnN0cnVjdG9yLnByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFja1xuICAgICAgICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2sgPSBmdW5jdGlvbih0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnW1dESU9dJywgJ3JlbW92ZVNoYWRvd1Jvb3QnLCB0aGlzKVxuICAgICAgICAgICAgcmV0dXJuIG9yaWdEaXNjb25uZWN0ZWRDYWxsYmFjaz8uY2FsbCh0aGlzKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnRm4obmFtZSwgQ29uc3RydWN0b3IsIG9wdGlvbnMpXG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ0F0dGFjaFNoYWRvdyA9IEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvd1xuICAgIEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdyA9IGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCwgaW5pdDogU2hhZG93Um9vdEluaXQpIHtcbiAgICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IG9yaWdBdHRhY2hTaGFkb3cuY2FsbCh0aGlzLCBpbml0KVxuICAgICAgICBsZXQgcGFyZW50Tm9kZTogUGFyZW50Tm9kZSB8IG51bGwgPSB0aGlzXG4gICAgICAgIHdoaWxlIChwYXJlbnROb2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudE5vZGVcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmRlYnVnKCdbV0RJT10nLCAnbmV3U2hhZG93Um9vdCcsIHRoaXMsIHBhcmVudE5vZGUsIHBhcmVudE5vZGUgPT09IGRvY3VtZW50LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpXG4gICAgICAgIHJldHVybiBzaGFkb3dSb290XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQVNlLFNBQVIsdUJBQXlDO0FBQzVDLFFBQU0sU0FBUyxlQUFlLE9BQU8sS0FBSyxjQUFjO0FBQ3hELGlCQUFlLFNBQVMsU0FBUyxNQUFjLGFBQXVDLFNBQW9DO0FBQ3RILFVBQU0sd0JBQXdCLFlBQVksVUFBVTtBQUNwRCxnQkFBWSxVQUFVLG9CQUFvQixXQUE0QjtBQUNsRSxVQUFJLGFBQWdDO0FBQ3BDLGFBQU8sV0FBVyxZQUFZO0FBQzFCLHFCQUFhLFdBQVc7QUFBQSxNQUM1QjtBQUNBLGNBQVEsTUFBTSxVQUFVLGlCQUFpQixNQUFNLFlBQVksZUFBZSxVQUFVLFNBQVMsZUFBZTtBQUM1RyxhQUFPLHVCQUF1QixLQUFLLElBQUk7QUFBQSxJQUMzQztBQUVBLFVBQU0sMkJBQTJCLFlBQVksVUFBVTtBQUN2RCxnQkFBWSxVQUFVLHVCQUF1QixXQUE0QjtBQUNyRSxjQUFRLE1BQU0sVUFBVSxvQkFBb0IsSUFBSTtBQUNoRCxhQUFPLDBCQUEwQixLQUFLLElBQUk7QUFBQSxJQUM5QztBQUNBLFdBQU8sT0FBTyxNQUFNLGFBQWEsT0FBTztBQUFBLEVBQzVDO0FBRUEsUUFBTSxtQkFBbUIsUUFBUSxVQUFVO0FBQzNDLFVBQVEsVUFBVSxlQUFlLFNBQTZCLE1BQXNCO0FBQ2hGLFVBQU0sYUFBYSxpQkFBaUIsS0FBSyxNQUFNLElBQUk7QUFDbkQsUUFBSSxhQUFnQztBQUNwQyxXQUFPLFdBQVcsWUFBWTtBQUMxQixtQkFBYSxXQUFXO0FBQUEsSUFDNUI7QUFDQSxZQUFRLE1BQU0sVUFBVSxpQkFBaUIsTUFBTSxZQUFZLGVBQWUsVUFBVSxTQUFTLGVBQWU7QUFDNUcsV0FBTztBQUFBLEVBQ1g7QUFDSjsiLAogICJuYW1lcyI6IFtdCn0K