Spec-Zone.ru › Playwright

Часы

Точное моделирование поведения, зависящего от времени, имеет важное значение для проверки правильности работы приложений. Узнайте больше о эмуляции часов.

Обратите внимание, что часы устанавливаются для всего контекста браузера, поэтому время на всех страницах и фреймах контролируется одними и теми же часами.

Методы​

fastForward​

Передвинуть часы, перескочив вперед во времени. Вызывает таймеры не более одного раза. Это эквивалентно закрытию крышки ноутбука на некоторое время и её последующему открытию через заданное время.

Использование

await page.clock.fastForward(1000);
await page.clock.fastForward('30:00');

Аргументы

  • ticks число | строка

    Время может быть числом миллисекунд для продвижения часов вперед или удобочитаемой строкой. Допустимые форматы строк: "08" для восьми секунд, "01:00" для одной минуты и "02:34:10" для двух часов, 34 минут и 10 секунд.

Возвращает

  • Promise<void>

install​

Установить поддельные реализации для следующих функций, связанных со временем:

  • Date
  • setTimeout
  • clearTimeout
  • setInterval
  • clearInterval
  • requestAnimationFrame
  • cancelAnimationFrame
  • requestIdleCallback
  • cancelIdleCallback
  • performance

Поддельные таймеры используются для ручного управления течением времени в тестах. Они позволяют продвигать время, запускать таймеры и управлять поведением функций, зависящих от времени. Более подробную информацию см. в clock.runFor() и clock.fastForward().

Использование

await clock.install();
await clock.install(options);

Аргументы

  • options Объект (необязательно)
    • time число | строка | [Дата] (необязательно)

      Время для инициализации, по умолчанию текущее системное время.

Возвращает

  • Promise<void>

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');

Аргументы

  • time число | строка | [Дата]

    Время паузы.

Возвращает

  • Promise<void>

resume​

Возобновляет таймеры. После вызова этого метода течение времени возобновляется, таймеры запускаются как обычно.

Использование

await clock.resume();

Возвращает

  • Promise<void>

runFor​

Передвинуть часы, вызвав все связанные с временем обратные вызовы.

Использование

await page.clock.runFor(1000);
await page.clock.runFor('30:00');

Аргументы

  • ticks число | строка

    Время может быть числом миллисекунд для продвижения часов вперед или удобочитаемой строкой. Допустимые форматы строк: "08" для восьми секунд, "01:00" для одной минуты и "02:34:10" для двух часов, 34 минут и 10 секунд.

Возвращает

  • Promise<void>

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');

Аргументы

  • time число | строка | [Дата]

    Время для установки в миллисекундах.

Возвращает

  • Promise<void>

setSystemTime​

Устанавливает системное время, но не запускает таймеры. Используйте это для проверки того, как веб-страница реагирует на сдвиг времени, например, на переход с летнего на зимнее время или изменение часовых поясов.

Использование

await page.clock.setSystemTime(Date.now());
await page.clock.setSystemTime(new Date('2020-02-02'));
await page.clock.setSystemTime('2020-02-02');

Аргументы

  • time число | строка | [Дата]

    Время для установки в миллисекундах.

Возвращает

  • Promise<void>

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-clock

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API