時計
時間依存の動作を正確にシミュレートすることは、アプリケーションの正確性を検証するために不可欠です。クロックエミュレーションについて詳しくはこちらをご覧ください。
クロックはBrowserContext全体にインストールされるため、すべてのページとiframeの時間は同じクロックによって制御されることに注意してください。
メソッド
FastForwardAsync
追加されたバージョン: v1.45時間を早送りしてクロックを進めます。期限切れのタイマーは最大1回だけ発火します。これは、ユーザーがしばらくノートパソコンの蓋を閉めて、指定された時間後に再び開くのと同等です。
使用法
await page.Clock.FastForwardAsync(1000);
await page.Clock.FastForwardAsync("30:00");
引数
-
時間は、クロックを進めるミリ秒数、または人間が判読できる文字列のいずれかです。有効な文字列形式は、8秒の場合は「08」、1分の場合は「01:00」、2時間34分10秒の場合は「02:34:10」です。
戻り値
InstallAsync
追加されたバージョン: v1.45以下の時間関連関数の偽の実装をインストールします
DatesetTimeoutclearTimeoutsetIntervalclearIntervalrequestAnimationFramecancelAnimationFramerequestIdleCallbackcancelIdleCallbackperformance
偽のタイマーは、テストの時間フローを手動で制御するために使用されます。これにより、時間を進め、タイマーを発火させ、時間依存関数の動作を制御できます。詳細については、Clock.RunForAsync()およびClock.FastForwardAsync()を参照してください。
使用法
await Clock.InstallAsync(options);
引数
optionsClockInstallOptions?(オプション)
戻り値
PauseAtAsync
追加されたバージョン: v1.45時間を早送りしてクロックを進め、時間を一時停止します。このメソッドが呼び出されると、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タイマーを再開します。このメソッドが呼び出されると、時間の流れが再開され、タイマーは通常通り発火します。
使用法
await Clock.ResumeAsync();
戻り値
RunForAsync
追加されたバージョン: v1.45クロックを進め、時間関連のすべてのコールバックを発火させます。
使用法
await page.Clock.RunForAsync(1000);
await page.Clock.RunForAsync("30:00");
引数
-
時間は、クロックを進めるミリ秒数、または人間が判読できる文字列のいずれかです。有効な文字列形式は、8秒の場合は「08」、1分の場合は「01:00」、2時間34分10秒の場合は「02:34:10」です。
戻り値
SetFixedTimeAsync
追加されたバージョン: v1.45Date.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システム時間を設定しますが、タイマーはトリガーしません。これを使用して、夏時間から冬時間への切り替えやタイムゾーンの変更など、ウェブページが時間の変更にどのように反応するかをテストします。
使用法
await page.Clock.SetSystemTimeAsync(DateTime.Now);
await page.Clock.SetSystemTimeAsync(new DateTime(2020, 2, 2));
await page.Clock.SetSystemTimeAsync("2020-02-02");
引数
戻り値