自動テストチュートリアル

Playwright、Seleniumなどの自動テストツールを学ぼう

デイトピッカー(Date Picker)

💡 ポイント
固定日付ではなく「明日の日付」を動的に取得して入力します

予約フォームなどでよく見かける、カレンダーから日付を選択する「デイトピッカー」の操作に挑戦しましょう。

利用頻度 難易度
★★☆☆☆ ★★☆☆☆

デイトピッカーに日付を入力する方法を学びます。今回はカレンダーのUIを一つ一つクリックするのではなく、もっと賢くて、より実践的な方法を使います。


まずは...

⚠️ 固定日付で自動テストする危険性

デイトピッカーの入力欄に、fill("01/01/2025") のように固定の日付を書き込むのは、実は非常に危険です。

なぜなら、多くの予約サイトでは「過去の日付は選択できない」ように制限されているため、テストを実行する次の日には、その日付が過去のものとなり、テストが失敗してしまうからです。

🔄 解決策:プログラムで「明日の日付」を取得する

この問題を解決するために、私たちは**「テストを実行したその日にとっての、明日の日付」をプログラムで自動的に取得**し、それを使う方法を学びます。

こうすることで、テストが明日も、一週間後も、一年後も安定して動き続ける、メンテナンス不要の賢いテストを書くことができるのです。


今回使用するコマンド:getTomorrowMDY()

getTomorrowMDY() は、この課題で特別に用意された、「明日の日付」を "月/日/年" の形式で取得してくれる便利な機能(ヘルパー関数)です。

基本的な書き方

// 日付を入力する場合
await page.[ここにPick locatorで取得したコード].fill(getTomorrowMDY());

やってみよう

以下の手順に沿って、デイトピッカーに「明日の日付」を入力するテストコードを完成させてください。

演習ファイル

tests/document-2/lesson-11.spec.ts

入力する値

項目 入力する値
Select Date テスト実行日の翌日

手順動画


手順

  1. デバッグ実行: ブレークポイントで目的の画面で止める
  2. 要素の特定: Pick locator を使ってコードを取得する
  3. コードの記述: 取得したコードを元に処理を完成させる
  4. 最終確認: テストを実行し、passed を確認する

ちなみに...

getTomorrowMDY() は、この教材の lib/modules/utils.ts というファイルの中に定義されている、オリジナルの便利機能です。

ここで覚えてほしいのは、コマンドの名前そのものではなく、**「日付のような変わりやすい値は、プログラムで動的に生成することで、テストを安定させられる」**という、非常に重要な考え方です。


⚠️ 重要

tests/document-2/lesson-11.spec.ts の4行目にある以下の1行を追加しないと getTomorrowMDY() は使用できません(最終課題で使用する際は漏れがないようにご確認ください)

import { getTomorrowMDY } from "@modules/utils";