UNPKG

@testplane/webdriverio

Version:

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

27 lines (26 loc) 3.16 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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NjcmlwdHMvaXNFbGVtZW50U3RhYmxlLnRzIl0sCiAgInNvdXJjZVJvb3QiOiAiL1VzZXJzL2R1ZGtldmljaC9qb2IvcHJvamVjdHMvZ2VtaW5pLXRlc3Rpbmcvd2ViZHJpdmVyaW8vcGFja2FnZXMvd2ViZHJpdmVyaW8iLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBjaGVjayBpZiBlbGVtZW50IGlzIHN0YWJsZSAoYW4gZWxlbWVudCBpcyBjb25zaWRlcmVkIHVuc3RhYmxlIHdoZW4gaXQgaXMgYW5pbWF0aW5nL21vdmluZylcbiAqIEBwYXJhbSAge0hUTUxFbGVtZW50fSBlbGVtICBlbGVtZW50IHRvIGNoZWNrXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gZG9uZSAgICAgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gZG9uZVxuICogQHJldHVybiB7dm9pZH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNFbGVtZW50U3RhYmxlKGVsZW06IEhUTUxFbGVtZW50LCBkb25lOiAocmV0dXJuVmFsdWU6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICB0aHJvdyBFcnJvcignWW91IGFyZSBjaGVja2luZyBmb3IgYW5pbWF0aW9ucyBvbiBhbiBpbmFjdGl2ZSB0YWIsIGFuaW1hdGlvbnMgZG8gbm90IHJ1biBmb3IgaW5hY3RpdmUgdGFicycpXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUG9zaXRpb24gPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIC8vIHdhaXQgZm9yIHR3byBjb25zZWN1dGl2ZSBmcmFtZXMgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBhbmltYXRpb25zXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQb3NpdGlvbiA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gcHJldmlvdXNQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNQb3NpdGlvblsocHJvcCBhcyBrZXlvZiBET01SZWN0KV0gIT09IGN1cnJlbnRQb3NpdGlvblsocHJvcCBhcyBrZXlvZiBET01SZWN0KV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG9uZSh0cnVlKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgZG9uZShmYWxzZSlcbiAgICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBTWUsU0FBUixnQkFBaUMsTUFBbUIsTUFBc0M7QUFDN0YsTUFBSSxTQUFTLG9CQUFvQixVQUFVO0FBQ3ZDLFVBQU0sTUFBTSw2RkFBNkY7QUFBQSxFQUM3RztBQUNBLE1BQUk7QUFDQSxVQUFNLG1CQUFtQixLQUFLLHNCQUFzQjtBQUVwRCwwQkFBc0IsTUFBTTtBQUN4Qiw0QkFBc0IsTUFBTTtBQUN4QixjQUFNLGtCQUFrQixLQUFLLHNCQUFzQjtBQUNuRCxtQkFBVyxRQUFRLGtCQUFrQjtBQUNqQyxjQUFJLGlCQUFrQixJQUFzQixNQUFNLGdCQUFpQixJQUFzQixHQUFHO0FBQ3hGLGlCQUFLLEtBQUs7QUFBQSxVQUNkO0FBQUEsUUFDSjtBQUNBLGFBQUssSUFBSTtBQUFBLE1BQ2IsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0wsUUFBUTtBQUNKLFNBQUssS0FBSztBQUFBLEVBQ2Q7QUFDSjsiLAogICJuYW1lcyI6IFtdCn0K