时钟
准确模拟时间相关行为对于验证应用程序的正确性至关重要。 了解有关 时钟模拟 的更多信息。
请注意,时钟是在整个 浏览器上下文 中安装的,因此所有页面和 iframe 中的时间都由同一个时钟控制。
方法
fastForward
添加于:v1.45通过在时间上跳跃向前来推进时钟。 最多只触发一次到期计时器。 这相当于用户关闭笔记本电脑盖一段时间,然后在给定时间后重新打开它。
用法
await page.clock.fastForward(1000);
await page.clock.fastForward('30:00');
参数
-
时间可以是推进时钟的毫秒数,也可以是人类可读的字符串。 有效的字符串格式为“08”表示八秒,“01:00”表示一分钟,“02:34:10”表示两小时、34 分钟和十秒。
返回值
install
添加于:v1.45为以下时间相关函数安装假实现
日期
setTimeout
clearTimeout
setInterval
clearInterval
requestAnimationFrame
cancelAnimationFrame
requestIdleCallback
cancelIdleCallback
表现
假计时器用于手动控制测试中时间的流逝。 它们允许您推进时间、触发计时器和控制时间相关函数的行为。 有关更多信息,请参阅 clock.runFor() 和 clock.fastForward()。
用法
await clock.install();
await clock.install(options);
参数
返回值
pauseAt
添加于:v1.45通过在时间上跳跃向前来推进时钟并暂停时间。 一旦调用此方法,除非调用 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
添加于:v1.45恢复计时器。 一旦调用此方法,时间就会恢复流逝,计时器会照常触发。
用法
await clock.resume();
返回值
runFor
添加于:v1.45推进时钟,触发所有与时间相关的回调。
用法
await page.clock.runFor(1000);
await page.clock.runFor('30:00');
参数
-
时间可以是推进时钟的毫秒数,也可以是人类可读的字符串。 有效的字符串格式为“08”表示八秒,“01:00”表示一分钟,“02:34:10”表示两小时、34 分钟和十秒。
返回值
setFixedTime
添加于:v1.45使 Date.now
和 new Date()
在任何时候都返回固定的假时间,保持所有计时器运行。
用法
await page.clock.setFixedTime(Date.now());
await page.clock.setFixedTime(new Date('2020-02-02'));
await page.clock.setFixedTime('2020-02-02');
参数
返回值
setSystemTime
添加于:v1.45设置当前系统时间,但不触发任何计时器。
用法
await page.clock.setSystemTime(Date.now());
await page.clock.setSystemTime(new Date('2020-02-02'));
await page.clock.setSystemTime('2020-02-02');
参数
返回值