UNPKG

@testplane/webdriverio

Version:

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

27 lines (26 loc) 3.15 kB
// src/scripts/isElementStable.ts function isElementStable(elem, done) { if (document.visibilityState === "hidden") { throw Error("You are checking for animations on an inactive tab, animations do not run for inactive tabs"); } try { const previousPosition = elem.getBoundingClientRect(); requestAnimationFrame(() => { requestAnimationFrame(() => { const currentPosition = elem.getBoundingClientRect(); for (const prop in previousPosition) { if (previousPosition[prop] !== currentPosition[prop]) { done(false); } } done(true); }); }); } catch { done(false); } } export { isElementStable as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvaXNFbGVtZW50U3RhYmxlLnRzIl0sCiAgInNvdXJjZVJvb3QiOiAiL1VzZXJzL2tyb21hbjUxMi9nZW1pbmktdGVzdGluZy93ZWJkcml2ZXJpby9wYWNrYWdlcy93ZWJkcml2ZXJpbyIsCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIGNoZWNrIGlmIGVsZW1lbnQgaXMgc3RhYmxlIChhbiBlbGVtZW50IGlzIGNvbnNpZGVyZWQgdW5zdGFibGUgd2hlbiBpdCBpcyBhbmltYXRpbmcvbW92aW5nKVxuICogQHBhcmFtICB7SFRNTEVsZW1lbnR9IGVsZW0gIGVsZW1lbnQgdG8gY2hlY2tcbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBkb25lICAgICBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBkb25lXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0VsZW1lbnRTdGFibGUoZWxlbTogSFRNTEVsZW1lbnQsIGRvbmU6IChyZXR1cm5WYWx1ZTogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdZb3UgYXJlIGNoZWNraW5nIGZvciBhbmltYXRpb25zIG9uIGFuIGluYWN0aXZlIHRhYiwgYW5pbWF0aW9ucyBkbyBub3QgcnVuIGZvciBpbmFjdGl2ZSB0YWJzJylcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNQb3NpdGlvbiA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgLy8gd2FpdCBmb3IgdHdvIGNvbnNlY3V0aXZlIGZyYW1lcyB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIGFuaW1hdGlvbnNcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBwcmV2aW91c1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1Bvc2l0aW9uWyhwcm9wIGFzIGtleW9mIERPTVJlY3QpXSAhPT0gY3VycmVudFBvc2l0aW9uWyhwcm9wIGFzIGtleW9mIERPTVJlY3QpXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkb25lKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH0gY2F0Y2gge1xuICAgICAgICBkb25lKGZhbHNlKVxuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFNZSxTQUFSLGdCQUFpQyxNQUFtQixNQUFzQztBQUM3RixNQUFJLFNBQVMsb0JBQW9CLFVBQVU7QUFDdkMsVUFBTSxNQUFNLDZGQUE2RjtBQUFBLEVBQzdHO0FBQ0EsTUFBSTtBQUNBLFVBQU0sbUJBQW1CLEtBQUssc0JBQXNCO0FBRXBELDBCQUFzQixNQUFNO0FBQ3hCLDRCQUFzQixNQUFNO0FBQ3hCLGNBQU0sa0JBQWtCLEtBQUssc0JBQXNCO0FBQ25ELG1CQUFXLFFBQVEsa0JBQWtCO0FBQ2pDLGNBQUksaUJBQWtCLElBQXNCLE1BQU0sZ0JBQWlCLElBQXNCLEdBQUc7QUFDeEYsaUJBQUssS0FBSztBQUFBLFVBQ2Q7QUFBQSxRQUNKO0FBQ0EsYUFBSyxJQUFJO0FBQUEsTUFDYixDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDTCxRQUFRO0FBQ0osU0FBSyxLQUFLO0FBQUEsRUFDZDtBQUNKOyIsCiAgIm5hbWVzIjogW10KfQo=