2024.01.30

Selenium

SeleniumIDE入門

Selenium IDEは、ブラウザベースの自動テストツールで、主にWebアプリケーションテストの自動化に使用されます。

今回はSelenium IDEの基本的な使い方とテストケース作成のポイントについて紹介します。

 

SeleniumIDEの使い方

 

ブラウザに拡張機能をインストール

 

ChromeまたはFirefoxにSelenium IDE拡張機能を追加します。拡張機能のアイコンをクリックすると別ウィンドウでSeleniumIDEが開きます。

 

トップメニュー項目を選択
  • Record a new test in a new project(新規プロジェクトに新しいテストを記録する)
  • Open an existing project(既存のプロジェクトを開く)
  • Create a new project(新規プロジェクトの作成)
  • Close Selenium IDE(Selenium IDEを閉じる)

 

テストプロジェクトの作成

  1. Record a new test in a new projectを選択します。
  2. テストプロジェクト名を入力します。
  3. テスト対象のサイトのURLを入力します。

 

テストケースの作成
  1. Start Recordingをクリックします。(この機能を使わずエディターに直接操作を記述していく方法もあります)
  2. 検証したい操作を行います。(自動で記録されます)
  3. 任意の操作を追加します。(操作したい要素を右クリック、メニューからSeleniumIDEのメニュー※1を選択します)
  4. SeleniumIDEの記録停止ボタンをクリックします。
  5. テストケース名を入力します。(後で入力することも可能です。)
  6. テストケースの編集を行います。
  7. テストケースを保存します。

 

※1 メニュー大項目

 

Mouse Over マウスカーソルを対象の要素に乗せます。
Assert 期待通りになっていることを検証します。検証に失敗すると、テストは中止されます。
Verify 期待通りになっていることを検証します。検証に失敗しても、テストは続行されます。
Store 変数に値を保存します。
Wait For 何らかの条件が真になるまで待機します。

 

SeleniumIDEでよく使われるコマンド

 

type フィールドにテキストを入力します。
click 要素をクリックします。
assert 要素が特定の値または属性を持っていることを確認します。
verify assertと似ていますが、検証に失敗してもテストを停止しません。
store 変数に値を保存します。
open URLを使ってページを開きます。
verify/assert title 指定されたページタイトルと実際のタイトルを比較します。
verify/assert text 指定されたテキストがページ上に存在するかチェックします。
verify/assert not text 指定されたテキストがページ上に存在しないことをチェックします。
verify/assert element present 指定された要素がページ上に存在するかどうかをチェックします。
verify/assert element not present 指定された要素がページ上に存在しないことをチェックします。
pause 指定した時間だけスクリプトの実行を停止します。Valueには、ms単位で指定します。
close ブラウザを閉じます
set window size ブラウザのウィンドウのサイズを変更します。

 

テストケース作成の注意点

  • テキストを検証する場合、検証に使う文字列は、ブラウザの文字列を直接コピーするのではなく、開発者ツールを使用して、テキストをコピーして使用することを推奨します。※文字列の前後にスペースを含む場合でも正しく検証するためです。
  • CSSセレクタでターゲットを指定する場合は、可読性を上げるため、簡潔な記述方法を用いることを推奨します。 例)//*[@id=”top”]/div/h1 →  #top>.text-vertical-center>h1
  • xpathでターゲットを指定する場合は、可読性を上げるため、可能な限り相対パスを使用することを推奨します。
  • Targetには使用するロケーターに合わせて接尾辞をつけます。 例)id= name= xpath= css= linkText=

 

ターゲットを指定する際に使用するロケーターの優先順位

 

1 id ベスト プラクティスでは、可能な限り ID を使用することを推奨しています。一意であり、簡潔に記述できるからです。
2 name 毎回一意になるわけではないことに注意してください。nameロケーターを使用して複数の要素が見つかった場合、seleniumは常に最初に一致する要素を選択します。
3 css CSSセレクタはクロスブラウザにも対応しています。これは、複数のブラウザでテストする場合に非常に便利です。
4 xpath 各ブラウザーは、同じ XPath に対して異なる動作をする場合があります。つまり、ChromeでWebサイトのXPathを記述すると、Safariで機能しない可能性があります。
5 linkText アンカータグ内に記述された文字列によって要素を検索します。特に、このロケーターは、Webサイトが多言語対応している場合に問題になる可能性があります。