Объект Clock (Часы)
Вы можете изменять системные часы браузера, используя команду emulate
. Она переопределяет нативные глобальные функции, связанные со временем, позволяя управлять ими синхронно через clock.tick()
или объект часов. Это включает контроль над:
setTimeout
clearTimeout
setInterval
clearInterval
Date Objects
Часы начинаются с эпохи Unix (метка времени 0). Это означает, что когда вы создаете новый объект Date в вашем приложении, он будет иметь время 1 января 1970 года, если вы не передадите другие параметры в команду emulate
.
Пример
При вызове browser.emulate('clock', { ... })
глобальные функции текущей страницы и всех последующих страниц будут немедленно переопределены, например:
const clock = await browser.emulate('clock', { now: new Date(1989, 7, 4) })
console.log(await browser.execute(() => (new Date()).toString()))
// returns "Fri Aug 04 1989 00:00:00 GMT-0700 (Pacific Daylight Time)"
await browser.url('https://webdriverio')
console.log(await browser.execute(() => (new Date()).toString()))
// returns "Fri Aug 04 1989 00:00:00 GMT-0700 (Pacific Daylight Time)"
await clock.restore()
console.log(await browser.execute(() => (new Date()).toString()))
// returns "Thu Aug 01 2024 17:59:59 GMT-0700 (Pacific Daylight Time)"
await browser.url('http://guinea-pig.webdriver.io/pointer.html')
console.log(await browser.execute(() => (new Date()).toString()))
// returns "Thu Aug 01 2024 17:59:59 GMT-0700 (Pacific Daylight Time)"
Вы можете изменять системное время, вызывая setSystemTime
или tick
.