Clock
Точное моделирование поведения, зависящего от времени, необходимо для проверки корректности приложений. Узнайте больше о эмуляции часов.
Обратите внимание, что часы устанавливаются для всего BrowserContext, поэтому время на всех страницах и во всех фреймах контролируется одними и теми же часами.
Методы
FastForwardAsync
Добавлено в: v1.45Перемещает часы вперед во времени. Таймеры срабатывают не более одного раза. Это эквивалентно закрытию крышки ноутбука на некоторое время и последующему открытию после указанного времени.
Использование
await page.Clock.FastForwardAsync(1000);
await page.Clock.FastForwardAsync("30:00");
Аргументы
-
Время может быть указано в миллисекундах или в виде читаемой строки. Допустимые форматы строк: "08" для восьми секунд, "01:00" для одной минуты и "02:34:10" для двух часов, 34 минут и десяти секунд.
Возвращает
InstallAsync
Добавлено в: v1.45Устанавливает фиктивные реализации для следующих функций, связанных со временем:
Date
setTimeout
clearTimeout
setInterval
clearInterval
requestAnimationFrame
cancelAnimationFrame
requestIdleCallback
cancelIdleCallback
performance
Фиктивные таймеры используются для ручного управления потоком времени в тестах. Они позволяют перемещать время вперед, запускать таймеры и контролировать поведение функций, зависящих от времени. См. Clock.RunForAsync() и Clock.FastForwardAsync() для получения дополнительной информации.
Использование
await Clock.InstallAsync(options);
Аргументы
options
ClockInstallOptions?
(опционально)
Возвращает
PauseAtAsync
Добавлено в: v1.45Перемещает часы вперед во времени и останавливает время. После вызова этого метода таймеры не срабатывают, если не вызваны Clock.RunForAsync(), Clock.FastForwardAsync(), Clock.PauseAtAsync() или Clock.ResumeAsync().
Таймеры срабатывают не более одного раза. Это эквивалентно закрытию крышки ноутбука на некоторое время и последующему открытию в указанное время с паузой.
Использование
await page.Clock.PauseAtAsync(DateTime.Parse("2020-02-02"));
await page.Clock.PauseAtAsync("2020-02-02");
Для достижения наилучших результатов установите часы перед навигацией по странице и установите их на время, немного предшествующее предполагаемому времени теста. Это гарантирует, что все таймеры будут работать нормально во время загрузки страницы, предотвращая зависание страницы. После полной загрузки страницы вы можете безопасно использовать Clock.PauseAtAsync() для остановки часов.
Аргументы
Возвращает
ResumeAsync
Добавлено в: v1.45Возобновляет работу таймеров. После вызова этого метода время снова начинает течь, таймеры срабатывают как обычно.
Использование
await Clock.ResumeAsync();
Возвращает
RunForAsync
Добавлено в: v1.45Перемещает часы вперед, вызывая все обратные вызовы, связанные со временем.
Использование
await page.Clock.RunForAsync(1000);
await page.Clock.RunForAsync("30:00");
Аргументы
-
Время может быть указано в миллисекундах или в виде читаемой строки. Допустимые форматы строк: "08" для восьми секунд, "01:00" для одной минуты и "02:34:10" для двух часов, 34 минут и десяти секунд.
Возвращает
SetFixedTimeAsync
Добавлено в: v1.45Заставляет Date.now
и new Date()
всегда возвращать фиксированное фиктивное время, при этом все таймеры продолжают работать.
Используйте этот метод для простых сценариев, когда вам нужно протестировать с предопределенным временем. Для более сложных сценариев используйте Clock.InstallAsync(). Прочтите документацию по эмуляции часов, чтобы узнать больше.
Использование
await page.Clock.SetFixedTimeAsync(DateTime.Now);
await page.Clock.SetFixedTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetFixedTimeAsync("2020-02-02");
Аргументы
Возвращает
SetSystemTimeAsync
Добавлено в: v1.45Устанавливает системное время, но не запускает таймеры. Используйте это, чтобы протестировать, как веб-страница реагирует на изменение времени, например, при переходе с летнего на зимнее время или при смене часовых поясов.
Использование
await page.Clock.SetSystemTimeAsync(DateTime.Now);
await page.Clock.SetSystemTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetSystemTimeAsync("2020-02-02");
Аргументы
Возвращает