Часы
Точное моделирование поведения, зависящего от времени, имеет важное значение для проверки правильности работы приложений. Узнайте больше о эмуляции часов.
Обратите внимание, что часы устанавливаются для всего контекста браузера, поэтому время на всех страницах и фреймах контролируется одними и теми же часами.
Методы
fastForward
Передвинуть часы, перескочив вперед во времени. Вызывает таймеры не более одного раза. Это эквивалентно закрытию крышки ноутбука на некоторое время и её последующему открытию через заданное время.
Использование
await page.clock.fastForward(1000);
await page.clock.fastForward('30:00'); Аргументы
-
Время может быть числом миллисекунд для продвижения часов вперед или удобочитаемой строкой. Допустимые форматы строк: "08" для восьми секунд, "01:00" для одной минуты и "02:34:10" для двух часов, 34 минут и 10 секунд.
Возвращает
install
Установить поддельные реализации для следующих функций, связанных со временем:
DatesetTimeoutclearTimeoutsetIntervalclearIntervalrequestAnimationFramecancelAnimationFramerequestIdleCallbackcancelIdleCallbackperformance
Поддельные таймеры используются для ручного управления течением времени в тестах. Они позволяют продвигать время, запускать таймеры и управлять поведением функций, зависящих от времени. Более подробную информацию см. в clock.runFor() и clock.fastForward().
Использование
await clock.install(); await clock.install(options);
Аргументы
-
optionsОбъект (необязательно)
Возвращает
pauseAt
Передвинуть часы, перескочив вперед во времени, и остановить время. После вызова этого метода таймеры не запускаются, пока не будет вызван clock.runFor(), clock.fastForward(), clock.pauseAt() или clock.resume().
Вызывает таймеры не более одного раза. Это эквивалентно закрытию крышки ноутбука на некоторое время и её открытию в указанное время, а затем паузе.
Использование
await page.clock.pauseAt(new Date('2020-02-02'));
await page.clock.pauseAt('2020-02-02'); Аргументы
Возвращает
resume
Возобновляет таймеры. После вызова этого метода течение времени возобновляется, таймеры запускаются как обычно.
Использование
await clock.resume();
Возвращает
runFor
Передвинуть часы, вызвав все связанные с временем обратные вызовы.
Использование
await page.clock.runFor(1000);
await page.clock.runFor('30:00'); Аргументы
-
Время может быть числом миллисекунд для продвижения часов вперед или удобочитаемой строкой. Допустимые форматы строк: "08" для восьми секунд, "01:00" для одной минуты и "02:34:10" для двух часов, 34 минут и 10 секунд.
Возвращает
setFixedTime
Делает Date.now и new Date() возвращать фиксированное поддельное время во все моменты времени, сохраняя при этом запуск всех таймеров.
Используйте этот метод для простых сценариев, где вам нужно только протестировать определённое время. Для более сложных сценариев используйте clock.install(). Прочитайте документацию по эмуляции часов, чтобы узнать больше.
Использование
await page.clock.setFixedTime(Date.now());
await page.clock.setFixedTime(new Date('2020-02-02'));
await page.clock.setFixedTime('2020-02-02'); Аргументы
Возвращает
setSystemTime
Устанавливает системное время, но не запускает таймеры. Используйте это для проверки того, как веб-страница реагирует на сдвиг времени, например, на переход с летнего на зимнее время или изменение часовых поясов.
Использование
await page.clock.setSystemTime(Date.now());
await page.clock.setSystemTime(new Date('2020-02-02'));
await page.clock.setSystemTime('2020-02-02'); Аргументы
Возвращает
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-clock