isStable
Обзор
Проверяет, остается ли геометрия элемента неизменной между двумя кадрами анимации. Метод обнаруживает изменение положения и размера, а не любую активность страницы.
Использование
element.isStable()
Параметры
У команды нет параметров.
Результат
Promise<boolean>: true, если сравниваемые свойства прямоугольника совпадают, иначе false.
Ограничения
Проверяйте существующий элемент на активной вкладке. Скрытый документ вызывает ошибку: кадры анимации в нем не выполняются обычным образом. Прозрачность, цвет и сетевые запросы могут меняться без изменения геометрии. Результат true — измерение в данный момент, а не гарантия окончания всех анимаций.
Пример
Настройте baseUrl на локальный HTTP-сайт, где / возвращает HTML-страницу. Запустите пример в файле тестов Testplane.
const assert = require("node:assert/strict");
it("isStable: check whether element geometry changes", async ({ browser }) => {
await browser.url("/");
await browser.execute(() => {
document.body.innerHTML = '<div id="box" style="width:40px;height:40px">Box</div>';
});
const box = await browser.$("#box");
await box.waitForExist();
assert.equal(await box.isStable(), true);
await box.execute(node => {
node.animate([{ transform: "translateX(0)" }, { transform: "translateX(200px)" }], {
duration: 500,
iterations: Infinity,
direction: "alternate",
});
});
try {
assert.equal(await box.isStable(), false);
} finally {
await box.execute(node => node.getAnimations().forEach(animation => animation.cancel()));
}
assert.equal(await box.isStable(), true);
});