Skip to main content

Clock

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

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


メソッド

FastForwardAsync

Added in: v1.45 clock.FastForwardAsync

時間をジャンプフォワードさせてクロックを進めます。期限切れのタイマーは最大で一度だけ発火します。これは、ユーザーがラップトップの蓋をしばらく閉じて、指定された時間後に再び開くのと同じです。

Usage

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

Arguments

  • ticks long | string#

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

Returns


InstallAsync

Added in: v1.45 clock.InstallAsync

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

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

偽のタイマーは、テストで時間の流れを手動で制御するために使用されます。これにより、時間を進めたり、タイマーを起動したり、時間依存関数の動作を制御したりできます。詳細については、Clock.RunForAsync() および Clock.FastForwardAsync() を参照してください。

Usage

await Clock.InstallAsync(options);

Arguments

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

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

Returns


PauseAtAsync

Added in: v1.45 clock.PauseAtAsync

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

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

Usage

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

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

Arguments

Returns


ResumeAsync

Added in: v1.45 clock.ResumeAsync

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

Usage

await Clock.ResumeAsync();

Returns


RunForAsync

Added in: v1.45 clock.RunForAsync

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

Usage

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

Arguments

  • ticks long | string#

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

Returns


SetFixedTimeAsync

Added in: v1.45 clock.SetFixedTimeAsync

Date.nownew Date() が常に固定された偽の時刻を返すようにし、すべてのタイマーを実行し続けます。

事前定義された時間でテストする必要があるだけの単純なシナリオには、このメソッドを使用してください。より高度なシナリオの場合は、代わりに Clock.InstallAsync() を使用してください。詳細については、クロックエミュレーションに関するドキュメントをお読みください。

Usage

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

Arguments

Returns


SetSystemTimeAsync

Added in: v1.45 clock.SetSystemTimeAsync

システム時刻を設定しますが、タイマーはトリガーしません。これを使用して、Web ページがタイムシフトにどのように反応するかをテストします。たとえば、夏時間から冬時間への切り替えや、タイムゾーンの変更などです。

Usage

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

Arguments

Returns