Class: Playwright::Clock
- Inherits:
-
PlaywrightApi
- Object
- PlaywrightApi
- Playwright::Clock
- Defined in:
- lib/playwright_api/clock.rb
Overview
Accurately simulating time-dependent behavior is essential for verifying the correctness of applications. Learn more about [clock emulation](../clock.md).
Note that clock is installed for the entire ‘BrowserContext`, so the time in all the pages and iframes is controlled by the same clock.
Instance Method Summary collapse
-
#fast_forward(ticks) ⇒ Object
Advance the clock by jumping forward in time.
-
#install(time: nil) ⇒ Object
Install fake implementations for the following time-related functions: - ‘Date` - `setTimeout` - `clearTimeout` - `setInterval` - `clearInterval` - `requestAnimationFrame` - `cancelAnimationFrame` - `requestIdleCallback` - `cancelIdleCallback` - `performance`.
-
#pause_at(time) ⇒ Object
Advance the clock by jumping forward in time and pause the time.
-
#resume ⇒ Object
Resumes timers.
-
#run_for(ticks) ⇒ Object
Advance the clock, firing all the time-related callbacks.
-
#set_fixed_time(time) ⇒ Object
(also: #fixed_time=)
Makes ‘Date.now` and `new Date()` return fixed fake time at all times, keeps all the timers running.
-
#set_system_time(time) ⇒ Object
(also: #system_time=)
Sets current system time but does not trigger any timers.
Methods inherited from PlaywrightApi
Constructor Details
This class inherits a constructor from Playwright::PlaywrightApi
Instance Method Details
#fast_forward(ticks) ⇒ Object
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
“‘python sync page.clock.fast_forward(1000) page.clock.fast_forward(“30:00”) “`
19 20 21 |
# File 'lib/playwright_api/clock.rb', line 19 def fast_forward(ticks) wrap_impl(@impl.fast_forward(unwrap_impl(ticks))) end |
#install(time: nil) ⇒ Object
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.
37 38 39 |
# File 'lib/playwright_api/clock.rb', line 37 def install(time: nil) wrap_impl(@impl.install(time: unwrap_impl(time))) end |
#pause_at(time) ⇒ Object
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
“‘python sync page.clock.pause_at(datetime.datetime(2020, 2, 2)) page.clock.pause_at(“2020-02-02”) “`
68 69 70 |
# File 'lib/playwright_api/clock.rb', line 68 def pause_at(time) wrap_impl(@impl.pause_at(unwrap_impl(time))) end |
#resume ⇒ Object
Resumes timers. Once this method is called, time resumes flowing, timers are fired as usual.
74 75 76 |
# File 'lib/playwright_api/clock.rb', line 74 def resume wrap_impl(@impl.resume) end |
#run_for(ticks) ⇒ Object
Advance the clock, firing all the time-related callbacks.
Usage
“‘python sync page.clock.run_for(1000); page.clock.run_for(“30:00”) “`
50 51 52 |
# File 'lib/playwright_api/clock.rb', line 50 def run_for(ticks) wrap_impl(@impl.run_for(unwrap_impl(ticks))) end |
#set_fixed_time(time) ⇒ Object Also known as: fixed_time=
Makes ‘Date.now` and `new Date()` return fixed fake time at all times, keeps all the timers running.
Usage
“‘python sync 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”) “`
89 90 91 |
# File 'lib/playwright_api/clock.rb', line 89 def set_fixed_time(time) wrap_impl(@impl.set_fixed_time(unwrap_impl(time))) end |
#set_system_time(time) ⇒ Object Also known as: system_time=
Sets current system time but does not trigger any timers.
Usage
“‘python sync 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”) “`
104 105 106 |
# File 'lib/playwright_api/clock.rb', line 104 def set_system_time(time) wrap_impl(@impl.set_system_time(unwrap_impl(time))) end |