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を閉じる)
テストプロジェクトの作成
- Record a new test in a new projectを選択します。
- テストプロジェクト名を入力します。
- テスト対象のサイトのURLを入力します。
テストケースの作成
- Start Recordingをクリックします。(この機能を使わずエディターに直接操作を記述していく方法もあります)
- 検証したい操作を行います。(自動で記録されます)
- 任意の操作を追加します。(操作したい要素を右クリック、メニューからSeleniumIDEのメニュー※1を選択します)
- SeleniumIDEの記録停止ボタンをクリックします。
- テストケース名を入力します。(後で入力することも可能です。)
- テストケースの編集を行います。
- テストケースを保存します。
※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サイトが多言語対応している場合に問題になる可能性があります。 |