メインコンテンツへスキップ

Clock

時間依存の動作を正確にシミュレートすることは、アプリケーションの正確性を検証するために不可欠です。クロックエミュレーションの詳細については、こちらをご覧ください。

クロックはBrowserContext全体にインストールされるため、すべてのページとiframeの時間は同じクロックによって制御されることに注意してください。


メソッド

FastForwardAsync

追加バージョン: v1.45 clock.FastForwardAsync

時間をジャンプしてクロックを進めます。期限切れのタイマーは最大1回のみ発火します。これは、ユーザーが一時的にラップトップの蓋を閉じ、指定された時間後に再度開くことと同じです。

使用法

await page.Clock.FastForwardAsync(1000);
await page.Clock.FastForwardAsync("30:00");

引数

  • ticks long | string#

    時間は、クロックを進めるミリ秒数または人間が読める文字列で指定できます。有効な文字列形式は、8秒の場合は「08」、1分の場合は「01:00」、2時間34分10秒の場合は「02:34:10」です。

戻り値


InstallAsync

追加バージョン: v1.45 clock.InstallAsync

以下の時間関連関数に偽の実装をインストールします

  • Date
  • setTimeout
  • clearTimeout
  • setInterval
  • clearInterval
  • requestAnimationFrame
  • cancelAnimationFrame
  • requestIdleCallback
  • cancelIdleCallback
  • performance

偽タイマーは、テストにおける時間の流れを手動で制御するために使用されます。これらを使用すると、時間を進め、タイマーを発火させ、時間依存関数の動作を制御できます。Clock.RunForAsync() および Clock.FastForwardAsync() の詳細については、こちらをご覧ください。

使用法

await Clock.InstallAsync(options);

引数

  • options ClockInstallOptions? (オプション)
    • Time|TimeDate string? | Date? (オプション)#

      初期化する時間。デフォルトでは現在のシステム時刻です。

戻り値


PauseAtAsync

追加バージョン: v1.45 clock.PauseAtAsync

時間をジャンプしてクロックを進め、時間を一時停止します。このメソッドが呼び出されると、Clock.RunForAsync()Clock.FastForwardAsync()Clock.PauseAtAsync()、または Clock.ResumeAsync() が呼び出されない限りタイマーは発火しません。

期限切れのタイマーは最大1回のみ発火します。これは、ユーザーが一時的にラップトップの蓋を閉じ、指定された時間に再度開いて一時停止することと同じです。

使用法

await page.Clock.PauseAtAsync(DateTime.Parse("2020-02-02"));
await page.Clock.PauseAtAsync("2020-02-02");

最良の結果を得るには、ページをナビゲートする前にクロックをインストールし、意図するテスト時間の少し前の時間に設定してください。これにより、ページ読み込み中にすべてのタイマーが正常に実行され、ページがフリーズするのを防ぐことができます。ページが完全に読み込まれたら、安全にClock.PauseAtAsync()を使用してクロックを一時停止できます。

引数

戻り値


ResumeAsync

追加バージョン: v1.45 clock.ResumeAsync

タイマーを再開します。このメソッドが呼び出されると、時間は再び流れ始め、タイマーは通常通り発火します。

使用法

await Clock.ResumeAsync();

戻り値


RunForAsync

追加バージョン: v1.45 clock.RunForAsync

クロックを進め、すべての時間関連コールバックを発火させます。

使用法

await page.Clock.RunForAsync(1000);
await page.Clock.RunForAsync("30:00");

引数

  • ticks long | string#

    時間は、クロックを進めるミリ秒数または人間が読める文字列で指定できます。有効な文字列形式は、8秒の場合は「08」、1分の場合は「01:00」、2時間34分10秒の場合は「02:34:10」です。

戻り値


SetFixedTimeAsync

追加バージョン: v1.45 clock.SetFixedTimeAsync

Date.now および new Date() が常に固定の偽の時間を返すようにし、すべてのタイマーを実行し続けます。

このメソッドは、あらかじめ定義された時間でテストするだけでよい単純なシナリオで使用してください。より高度なシナリオでは、代わりにClock.InstallAsync()を使用してください。クロックエミュレーションのドキュメントを読んで詳細を確認してください。

使用法

await page.Clock.SetFixedTimeAsync(DateTime.Now);
await page.Clock.SetFixedTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetFixedTimeAsync("2020-02-02");

引数

戻り値


SetSystemTimeAsync

追加バージョン: v1.45 clock.SetSystemTimeAsync

システム時刻を設定しますが、タイマーはトリガーしません。これは、ウェブページが時間の変更(例:サマータイムから冬時間への切り替え、タイムゾーンの変更)にどのように反応するかをテストするために使用します。

使用法

await page.Clock.SetSystemTimeAsync(DateTime.Now);
await page.Clock.SetSystemTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetSystemTimeAsync("2020-02-02");

引数

戻り値