跳至主要内容

时钟

准确模拟时间相关的行为对于验证应用程序的正确性至关重要。 了解有关时钟模拟的更多信息。

请注意,时钟是为整个浏览器上下文安装的,因此所有页面和 iframe 中的时间都由同一个时钟控制。


方法

fast_forward

新增于:v1.45 clock.fast_forward

通过在时间上跳跃来推进时钟。最多只触发一次到期的计时器。这相当于用户关闭笔记本电脑盖一段时间,然后在给定时间后重新打开它。

用法

page.clock.fast_forward(1000)
page.clock.fast_forward("30:00")

参数

  • ticks int | str#

    时间可以是推进时钟的毫秒数,也可以是人类可读的字符串。有效的字符串格式为“08”表示 8 秒,“01:00”表示 1 分钟,“02:34:10”表示 2 小时 34 分 10 秒。

返回值


install

新增于:v1.45 clock.install

为以下时间相关函数安装伪造的实现

  • 日期
  • setTimeout
  • clearTimeout
  • setInterval
  • clearInterval
  • requestAnimationFrame
  • cancelAnimationFrame
  • requestIdleCallback
  • cancelIdleCallback
  • 性能

伪造计时器用于手动控制测试中的时间流。它们允许您推进时间、触发计时器以及控制时间相关函数的行为。有关更多信息,请参阅clock.run_for()clock.fast_forward()

用法

clock.install()
clock.install(**kwargs)

参数

  • time float | str | datetime (可选)#

    初始化的时间,默认为当前系统时间。

返回值


pause_at

新增于:v1.45 clock.pause_at

通过在时间上跳跃来推进时钟并暂停时间。一旦调用此方法,除非调用clock.run_for()clock.fast_forward()clock.pause_at()clock.resume(),否则不会触发任何计时器。

最多只触发一次到期的计时器。这相当于用户关闭笔记本电脑盖一段时间,然后在指定时间重新打开它并暂停。

用法

page.clock.pause_at(datetime.datetime(2020, 2, 2))
page.clock.pause_at("2020-02-02")

参数

返回值


resume

新增于:v1.45 clock.resume

恢复计时器。一旦调用此方法,时间就会恢复流动,计时器会照常触发。

用法

clock.resume()

返回值


run_for

新增于:v1.45 clock.run_for

推进时钟,触发所有时间相关的回调。

用法

page.clock.run_for(1000);
page.clock.run_for("30:00")

参数

  • ticks int | str#

    时间可以是推进时钟的毫秒数,也可以是人类可读的字符串。有效的字符串格式为“08”表示 8 秒,“01:00”表示 1 分钟,“02:34:10”表示 2 小时 34 分 10 秒。

返回值


set_fixed_time

新增于:v1.45 clock.set_fixed_time

使Date.nownew Date() 始终返回固定的伪造时间,并保持所有计时器运行。

用法

page.clock.set_fixed_time(datetime.datetime.now())
page.clock.set_fixed_time(datetime.datetime(2020, 2, 2))
page.clock.set_fixed_time("2020-02-02")

参数

返回值


set_system_time

新增于:v1.45 clock.set_system_time

设置当前系统时间,但不触发任何计时器。

用法

page.clock.set_system_time(datetime.datetime.now())
page.clock.set_system_time(datetime.datetime(2020, 2, 2))
page.clock.set_system_time("2020-02-02")

参数

返回值