7.6 KiB
class: Clock
- since: v1.45
Accurately simulating time-dependent behavior is essential for verifying the correctness of applications. Learn more about clock emulation.
Note that clock is installed for the entire [BrowserContext], so the time in all the pages and iframes is controlled by the same clock.
async method: Clock.fastForward
- since: v1.45
Advance the clock by jumping forward in time. Only fires due timers at most once. This is equivalent to user closing the laptop lid for a while and reopening it later, after given time.
Usage
await page.clock.fastForward(1000);
await page.clock.fastForward('30:00');
await page.clock.fast_forward(1000)
await page.clock.fast_forward("30:00")
page.clock.fast_forward(1000)
page.clock.fast_forward("30:00")
page.clock().fastForward(1000);
page.clock().fastForward("30:00");
await page.Clock.FastForwardAsync(1000);
await page.Clock.FastForwardAsync("30:00");
param: Clock.fastForward.ticks
- since: v1.45
ticks
<[long]|[string]>
Time may be the number of milliseconds to advance the clock by or a human-readable string. Valid string formats are "08" for eight seconds, "01:00" for one minute and "02:34:10" for two hours, 34 minutes and ten seconds.
async method: Clock.install
- since: v1.45
Install fake implementations for the following time-related functions:
Date
setTimeout
clearTimeout
setInterval
clearInterval
requestAnimationFrame
cancelAnimationFrame
requestIdleCallback
cancelIdleCallback
performance
Fake timers are used to manually control the flow of time in tests. They allow you to advance time, fire timers, and control the behavior of time-dependent functions. See [method: Clock.runFor
] and [method: Clock.fastForward
] for more information.
option: Clock.install.time
- langs: js, java
- since: v1.45
time
<[long]|[string]|[Date]>
Time to initialize with, current system time by default.
option: Clock.install.time
- langs: python
- since: v1.45
time
<[float]|[string]|[Date]>
Time to initialize with, current system time by default.
option: Clock.install.time
- langs: csharp
- since: v1.45
time
<[string]|[Date]>
Time to initialize with, current system time by default.
async method: Clock.runFor
- since: v1.45
Advance the clock, firing all the time-related callbacks.
Usage
await page.clock.runFor(1000);
await page.clock.runFor('30:00');
await page.clock.run_for(1000);
await page.clock.run_for("30:00")
page.clock.run_for(1000);
page.clock.run_for("30:00")
page.clock().runFor(1000);
page.clock().runFor("30:00");
await page.Clock.RunForAsync(1000);
await page.Clock.RunForAsync("30:00");
param: Clock.runFor.ticks
- since: v1.45
ticks
<[long]|[string]>
Time may be the number of milliseconds to advance the clock by or a human-readable string. Valid string formats are "08" for eight seconds, "01:00" for one minute and "02:34:10" for two hours, 34 minutes and ten seconds.
async method: Clock.pauseAt
- since: v1.45
Advance the clock by jumping forward in time and pause the time. Once this method is called, no timers
are fired unless [method: Clock.runFor
], [method: Clock.fastForward
], [method: Clock.pauseAt
] or [method: Clock.resume
] is called.
Only fires due timers at most once. This is equivalent to user closing the laptop lid for a while and reopening it at the specified time and pausing.
Usage
await page.clock.pauseAt(new Date('2020-02-02'));
await page.clock.pauseAt('2020-02-02');
await page.clock.pause_at(datetime.datetime(2020, 2, 2))
await page.clock.pause_at("2020-02-02")
page.clock.pause_at(datetime.datetime(2020, 2, 2))
page.clock.pause_at("2020-02-02")
SimpleDateFormat format = new SimpleDateFormat("yyy-MM-dd");
page.clock().pauseAt(format.parse("2020-02-02"));
page.clock().pauseAt("2020-02-02");
await page.Clock.PauseAtAsync(DateTime.Parse("2020-02-02"));
await page.Clock.PauseAtAsync("2020-02-02");
param: Clock.pauseAt.time
- langs: js, java
- since: v1.45
time
<[long]|[string]|[Date]>
Time to pause at.
param: Clock.pauseAt.time
- langs: python
- since: v1.45
time
<[float]|[string]|[Date]>
Time to pause at.
param: Clock.pauseAt.time
- langs: csharp
- since: v1.45
time
<[Date]|[string]>
Time to pause at.
async method: Clock.resume
- since: v1.45
Resumes timers. Once this method is called, time resumes flowing, timers are fired as usual.
async method: Clock.setFixedTime
- since: v1.45
Makes Date.now
and new Date()
return fixed fake time at all times,
keeps all the timers running.
Use this method for simple scenarios where you only need to test with a predefined time. For more advanced scenarios, use [method: Clock.install
] instead. Read docs on clock emulation to learn more.
Usage
await page.clock.setFixedTime(Date.now());
await page.clock.setFixedTime(new Date('2020-02-02'));
await page.clock.setFixedTime('2020-02-02');
await page.clock.set_fixed_time(datetime.datetime.now())
await page.clock.set_fixed_time(datetime.datetime(2020, 2, 2))
await page.clock.set_fixed_time("2020-02-02")
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")
page.clock().setFixedTime(new Date());
page.clock().setFixedTime(new SimpleDateFormat("yyy-MM-dd").parse("2020-02-02"));
page.clock().setFixedTime("2020-02-02");
await page.Clock.SetFixedTimeAsync(DateTime.Now);
await page.Clock.SetFixedTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetFixedTimeAsync("2020-02-02");
param: Clock.setFixedTime.time
- langs: js, java
- since: v1.45
time
<[long]|[string]|[Date]>
Time to be set in milliseconds.
param: Clock.setFixedTime.time
- langs: python
- since: v1.45
time
<[float]|[string]|[Date]>
Time to be set.
param: Clock.setFixedTime.time
- langs: csharp
- since: v1.45
time
<[string]|[Date]>
Time to be set.
async method: Clock.setSystemTime
- since: v1.45
Sets system time, but does not trigger any timers. Use this to test how the web page reacts to a time shift, for example switching from summer to winter time, or changing time zones.
Usage
await page.clock.setSystemTime(Date.now());
await page.clock.setSystemTime(new Date('2020-02-02'));
await page.clock.setSystemTime('2020-02-02');
await page.clock.set_system_time(datetime.datetime.now())
await page.clock.set_system_time(datetime.datetime(2020, 2, 2))
await page.clock.set_system_time("2020-02-02")
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")
page.clock().setSystemTime(new Date());
page.clock().setSystemTime(new SimpleDateFormat("yyy-MM-dd").parse("2020-02-02"));
page.clock().setSystemTime("2020-02-02");
await page.Clock.SetSystemTimeAsync(DateTime.Now);
await page.Clock.SetSystemTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetSystemTimeAsync("2020-02-02");
param: Clock.setSystemTime.time
- langs: js, java
- since: v1.45
time
<[long]|[string]|[Date]>
Time to be set in milliseconds.
param: Clock.setSystemTime.time
- langs: python
- since: v1.45
time
<[float]|[string]|[Date]>
Time to be set.
param: Clock.setSystemTime.time
- langs: csharp
- since: v1.45
time
<[string]|[Date]>
Time to be set.