Selenium リファレンスガイド(日本語版)
本ドキュメントは、Webアプリケーション用のテストツール"Selenium"の公式ホームページのリファレンスを日本語訳したものです。 (2006 June 1st. update!!)
概要
コマンドはSeleniumに対してどう動くか指示するものです。コマンドにはActionとAccessor、Assertionの三種類があります。
各コマンドの呼び出しは、テストケースのtableにおける以下のような1つの行で表します。
Actionコマンドは、アプリケーションの状態を一般に操作するものです。Actionコマンドは「このリンクをクリックする」とか「あのオプションを選択する」といった動作を行います。動作に失敗するか、エラーが発生した場合は、現在実行中のテストは中止されます。
多くのActionコマンドは"AndWait"サフィックスを付けることができます(例えば"clickAndWait")。このサフィックスはSeleniumに対して、コマンドを実行してサーバへの通信が行われた後に新しいページがロードされるのを待つように指示するものです。
Accessorコマンドは、アプリケーションの状態を検査して結果を変数に保存します(例:"storeTitle")。また、自動的にAssertionコマンドを生成します。
Assertionコマンドは、Accessorコマンドと似ていますが、こちらはアプリケーションの状態が期待しているものと合致しているか検証するものです。例えば「このページのタイトルはXかどうか確かめる」とか「このチェックボックスにチェックが入っているか確認する」などです。
全てのAssertionコマンドは3つの形式があります。"assert"、"verify"、"waitFor"です。"assert"が失敗した場合、テストは中止されます。"verify"が失敗した場合は、失敗はログに記録されてテストは継続実施されます。これによって、1つの"assert"でアプリケーションが正しいページにあることを確認した上で後続の"verify"コマンドでformフィールドのvalueやラベルなどの確認をまとめて実施することができます。
"waitFor"は、いくつかの条件が満たされることを待ちます(これはAjaxアプリケーションのテストに有用です)。これらのコマンドは、条件が既に満たされている場合は直ちに検証成功となります。しかし、現在のタイムアウト設定の時間内に条件が満たされなかった場合には検証失敗となり、テストを中止します(タイムアウト設定についてはsetTimeoutコマンドを参照して下さい)。
ElementLocatorは、コマンドがHTMLのどの要素を参照するかをSeleniumに指示するものです。多くのコマンドはElementLocatorをターゲットとして必要とします。ElementLocatorの例としては、"elementId"や"document.forms[0].element"などです。ElementLocatorについては次のセクションで詳しく述べます。
文字列パターンは様々な理由で使われます。例えば、入力フィールドの期待値を指定したり、プルダウンの選択肢を特定したりするためです。Seleniumは正規表現を含む様々な種類のパターンをサポートしています。詳しくは後述します。
Element Locator
Element Locatorとは、Seleniumにおいて、コマンドが参照するhtml要素を特定するものです。ElementLocatorの書式は以下の通りです。
SeleniumではElementLocatorとして以下のlocatorTypeに対応しています。
- id
(書式)
id属性で指定された要素を選択します。
ElementLocatorのprefix(locatorType)が無い場合、Seleniumは以下のものと解釈して動作します。
| "document."から始まっている場合 |
dom=と解釈して動作 |
| "//"から始まっている場合 |
xpath=と解釈して動作 |
| それ以外 |
identifier=と解釈して動作 |
Element Filter
element-filterは候補となる要素を絞り込むためにElementLocatorと一緒に使用することができます。現在は、"name" ElementLocatorとのみ使用可能です。
書式は以下の通りです。
対応しているelement-filterは以下の通りです。
文字列マッチングパターン
文字列のマッチングとして、様々なパターン構文が利用可能です。
パターンを示すprefix(xxx: )が無い場合、Seleniumは"glob"パターンであると仮定して動作します。
Actionコマンド
(訳注)
コマンドの書式は以下のように記述しています。
- コマンド名(第1引数)
- コマンド名(第1引数、第2引数)
テストケースのtable に記述する際は、第1引数はターゲットとしてtable の第2カラムに記述し、第2引数はバリューとしてtable の第3カラムに記述します。
| コマンド |
ターゲット |
バリュー |
| コマンド名 |
第1引数 |
第2引数 |
- click ( locator )
リンク、ボタン、チェックボックス、ラジオボタンをクリックします。
通常のリンクのようにクリックすると新たなページに遷移する場合は、"waitForPageToLoad"コマンドを使用して下さい。
(引数の説明)
* locator - クリックする要素のelement locator
- fireEvent ( locator,eventName )
"onEvent"ハンドラに一致するトリガーを起動するために、明示的にイベントをシミュレートします。
(引数の説明)
* locator - an element locator
* eventName - イベント名。例:"focus" or "blur"
- keyPress ( locator,keycode ) (バージョン0.7.0新コマンド)
ユーザーがキーを押して離すことをシミュレートします。
(引数の説明)
* locator - an element locator
* keycode - 押そうとするキーのキーコード。通常はASCIIコード。
- keyDown ( locator,keycode ) (バージョン0.7.0新コマンド)
ユーザーがキーを押した状態(まだ離していない状態)をシミュレートします。
(引数の説明)
* locator - an element locator
* keycode -押そうとするキーのキーコード。通常はASCIIコード。
- keyUp ( locator,keycode ) (バージョン0.7.0新コマンド)
ユーザーが(押した)キーを離すことをシミュレートします。
(引数の説明)
* locator - an element locator
* keycode -押そうとするキーのキーコード。通常はASCIIコード。
- mouseOver ( locator ) (バージョン0.7.0新コマンド)
指定した要素にマウスを合わせることをシミュレートします。
(引数の説明)
* locator - an element locator
- mouseDown ( locator ) (バージョン0.7.0新コマンド)
指定した要素上でマウスのボタンを押した状態(離さない状態)をシミュレートします。
(引数の説明)
* locator - an element locator
- type ( locator,value )
テキストボックスなどの入力フィールドに値をタイプ(入力)します。
コンボボックスやチェックボックスのvalueを設定するためにも使うことができます。その場合は表示されている文字ではなく、選択されているoptionのvalue属性を指定します。
(引数の説明)
* locator - an element locator
* value - 入力する値
- check ( locator ) (バージョン0.7.0新コマンド)
指定したチェックボックスやラジオボタンを選択状態にします。
(引数の説明)
* locator - an element locator
- uncheck ( locator ) (バージョン0.7.0新コマンド)
指定したチェックボックスやラジオボタンを非選択状態にします。
(引数の説明)
* locator - an element locator
- addSelection ( locator,optionLocator ) (バージョン0.7.0新コマンド)
select要素で複数選択できる(multiple属性がある)場合に、指定したoption要素を選択されたoption要素へ追加します。
- removeSelection ( locator,optionLocator ) (バージョン0.7.0新コマンド)
select要素で複数選択できる(multiple属性がある)場合に、指定したoption要素を選択されたoption要素から取り除きします。
(引数の説明)
* locator - multiple属性ありのselect要素を示すelement locator
* optionLocator - an option locator
- submit ( formLocator ) (バージョン0.7.0新コマンド)
指定したformのsubmitを行います。これは特に、例えばinput要素が一つだけの検索formなど、submitボタンが無いformに対して役に立ちます。
(引数の説明)
* formLocator - submitしたいformを示すelement locator
- open ( url )
TestRunnerのテスト用フレームにて、指定したURLを開きます。相対パス又は絶対パスの両者とも指定可能です。openコマンドはURLを開いた後テストを続行する前に新たなページがロードされるのを待ちます。つまり、"AndWait"サフィックスが暗黙的に付与されているのです。
(注)ブラウザにおけるセキュリティ制限("Same Origin Policy"と言われるクロスサイトスクリプティング対策)の為、URLはSelenium(TestRunner.html)と同じドメイン上になければなりません。もし異なるドメイン上のURLを開く必要があるなら、Selenium RC(Remote Control)を使ってください。
(引数の説明)
* url - 開こうとするURL:絶対パスまたは相対パス
- selectWindow ( windowID )
ポップアップウィンドウを選択します。一度ポップアップウィンドウが選択されると、全てのコマンドはそのウィンドウに対して実行されます。元のメインウィンドウを再び選択するためには、ターゲットにnullを指定します。
(引数の説明)
* windowID - 選択しようとするウィンドウのJavaScript window ID
- waitForPopUp ( windowID,timeout ) (バージョン0.7.0新コマンド)
ポップアップウィンドウが出現してロードされるのを待ちます。
(引数の説明)
* windowID - 出現するウィンドウのJavaScript window ID
* timeout - タイムアウト(ミリ秒)。タイムアウトした場合はエラーとなります。
- chooseCancelOnNextConfirmation ( )
デフォルトでは、Seleniumがオーバーライドするwindow.confirm()関数は、ユーザーがOKボタンをクリックしたのと同様の動作でtrueを返します。このコマンドを実行した後では、次に呼ばれたconfirm()関数は、ユーザがCancelボタンをクリックしたのと同様の動作でfalseを返します。
- answerOnNextPrompt ( answer )
次に実行するJavascriptのプロンプトwindow.prompt()に対するレスポンスとして指定した文字列を返却するようSeleniumに指示します。
(引数の説明)
* answer - 返却する文字列
- goBack ( )
ブラウザの"戻る"ボタンをユーザがクリックすることをシミュレートします。
- refresh ( ) (バージョン0.7.0新コマンド)
ブラウザの"更新"ボタンをユーザがクリックすることをシミュレートします。
- close ( )
ポップアップしたウィンドウ又はタブのタイトルバーで"閉じる"ボタンをクリックすることをシミュレートします。
- setCursorPosition ( locator,position ) (Coreバージョン0.7.0未収録、RC0.8.1新規コマンド)
テキスト入力のカーソルをinput要素またはテキストエリアの指定した場所に動かします。指定した要素がinputまたはテキストエリアでなかった場合はコマンドエラーとなります。
(引数の説明)
* locator - input要素またはテキストエリアのelement locator
* position - 入力するフィールド内でカーソルを何文字目に置くか。入力フィールド内のカーソル位置は0から始まり、フィールドの最後は-1で表します。
- setContext ( context,logLevelThreshold ) (バージョン0.7.0新コマンド)
ステータスバーにメッセージを書き込み、ブラウザサイドのログに記述を追加します。
logLevelThresholdを指定する場合、ロギングのスレッショルドを指定するレベル(debug, info, warn, error)に合わせて設定して下さい
(ブラウザサイドのログはサーバー側には送られず、ClientDriverにも見えないことに注意してください)
(引数の説明)
* context - ブラウザへ送るメッセージ
* logLevelThreshold - "debug", "info", "warn", "error"のうちどれか1つ。ブラウザサイドのロギング用スレッショルドを設定すること。
- waitForCondition ( script,timeout ) (バージョン0.7.0新コマンド)
指定したJavascriptを実行し、その評価がtrueになるまで待ちます。Javascriptは複数行に渡るかもしれませんが、最終行の結果のみが考慮されます。
デフォルトでは、指定したJavascriptはあなたのアプリケーションのウィンドウではなく、TestRunnerの制御用ウィンドウで実行されることに注意してください。あなたのアプリケーションのウィンドウを取得するためには、selenium.browserbot.getCurrentWindow()を実行してからあなたのJavascriptを実行してください。
(引数の説明)
* script - 実行するJavaScript
* timeout - タイムアウト(ミリ秒)。タイムアウトした場合はコマンドエラーとなります。
- setTimeout ( timeout ) (バージョン0.7.0新コマンド)
SeleniumがActionコマンドが完了するまでに待つ時間を指定します。
"open"コマンドと"WaitFor~"コマンドはコマンド完了を待つ必要があります。
デフォルトのタイムアウトは30秒です。
(引数の説明)
* timeout - タイムアウト(ミリ秒)。タイムアウトした場合はコマンドエラーとなります。
- waitForPageToLoad ( timeout ) (バージョン0.7.0新コマンド)
新しいページがロードされるのを待ちます。
あなたは"AndWait"サフィックス("clickAndWait"や "selectAndWait", "typeAndWait"など)の代わりにこのコマンドを使うことができます。"AndWait"サフィックスはJS API内でのみ使うことができるのです。
Seleniumは新しいページをロードした跡を絶えず保持しており、ページを最初にロードした時には"newPageLoaded"フラグを設定しています。Seleniumの他のコマンドを実行するとフラグはfalseになります。従って、ページがロードされるのを待ちたい場合には、ページのロードを発生させるコマンドを実行した直後にこのコマンドを実行しなければなりません。
(引数の説明)
* timeout - タイムアウト(ミリ秒)。タイムアウトした場合はコマンドエラーとなります。
Accessorsコマンド(Assertionコマンド含む)
(訳注)
コマンドの書式は以下のように記述しています。
- コマンド名(第1引数)
- コマンド名(第1引数、第2引数)
テストケースのtable に記述する際は、第1引数はターゲットとしてtable の第2カラムに記述し、第2引数はバリューとしてtable の第3カラムに記述します。
| コマンド |
ターゲット |
バリュー |
| コマンド名 |
第1引数 |
第2引数 |
また、Accessorコマンドにおける引数の"variableName"とは、取得した結果を保存する変数名です。
任意の変数名で取得した値を保存し、テストケース内で${変数名}という書式で変数値を使用することができます。
- assertSelected ( selectLocator,optionLocator )
ドロップダウンのselect要素にて選択したopotion要素がoptionLocatorとマッチしているか検証します。
optionLocatorについてはselectコマンドを参照して下さい。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
* optionLocator - an option locator (例: "John Smith")
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertNotSelected ( selectLocator, optionLocator )
- verifySelected ( selectLocator, optionLocator )
- verifyNotSelected ( selectLocator, optionLocator )
- waitForSelected ( selectLocator, optionLocator )
- waitForNotSelected ( selectLocator, optionLocator )
- storeAlertPresent ( variableName )
alertが発生したかどうかを取得します。この関数は例外をスローすることはありません。
.
(戻り値)
alertが発生した場合、trueが返ります。
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertAlertPresent ( )
- assertAlertNotPresent ( )
- verifyAlertPresent ( )
- verifyAlertNotPresent ( )
- waitForAlertPresent ( )
- waitForAlertNotPresent ( )
- storePromptPresent ( variableName )
promptダイアログが発生したかどうかを取得します。この関数は例外をスローすることはありません。
.
(戻り値)
保留中のpromptがある場合、trueが返ります。
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertPromptPresent ( )
- assertPromptNotPresent ( )
- verifyPromptPresent ( )
- verifyPromptNotPresent ( )
- waitForPromptPresent ( )
- waitForPromptNotPresent ( )
- storeConfirmationPresent ( variableName )
confirm()メソッドが呼ばれたかどうかを取得します。この関数は例外をスローすることはありません。
.
(戻り値)
保留中の確認ダイアログがある場合、trueが返ります。
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertConfirmationPresent ( )
- assertConfirmationNotPresent ( )
- verifyConfirmationPresent ( )
- verifyConfirmationNotPresent ( )
- waitForConfirmationPresent ( )
- waitForConfirmationNotPresent ( )
- storeAlert ( variableName )
事前に実行したactionコマンドによって発生したJavaScriptアラートのメッセージを回収します。アラートが無い場合にはエラーとなります。
このコマンドを実行してアラートを取得することは手動でOKボタンをクリックするのと同じ効果があります。アラートが発生したけれども検証も取得もしなかった場合、Seleniumの次のコマンドは失敗します。
(注)Seleniumの元では、JavaScriptアラートは目に見えるアラートダイアログとしてポップアップしません。
(注)Seleniumはページのonload()イベントハンドラによって作られれたJavaScriptアラートはサポートしていません。この場合は目に見えるダイアログが作成され、誰かが手動でOKをクリックするまでSeleniumは停止したままです。
.
(戻り値)
最も新たに発生したJavaScript alertのメッセージ
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertAlert ( メッセージの文字列パターン )
- assertNotAlert ( メッセージの文字列パターン )
- verifyAlert ( メッセージの文字列パターン )
- verifyNotAlert ( メッセージの文字列パターン )
- waitForAlert ( メッセージの文字列パターン )
- waitForNotAlert ( メッセージの文字列パターン )
- storeConfirmation ( variableName )
事前に実行したActionコマンドによって発生したJavascriptの確認ダイアログのメッセージを取得します。
デフォルトでは、confirm関数はtrueを返します。それはユーザーがOKボタンをクリックするのと同様の効果です。その動作は事前にchooseCancelOnNextConfirmationコマンドを実行することで変更できます。確認ダイアログが発生して検証も取得もしなかった場合、Seleniumの次のコマンドはエラーとなります。
(注)Seleniumの制御下では、確認ダイアログは目に見えるダイアログとしてポップアップしません。
(注)Seleniumは、ページのonload()イベントハンドラによって発生するJavascriptの確認ダイアログはサポートしていません。この場合には、目に見えるダイアログが出現し、手動でOKをクリックするまでSeleniumは停止してしまいます。
.
(戻り値)
最も新たに発生したJavaScript 確認ダイアログのメッセージ
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertConfirmation ( メッセージの文字列パターン )
- assertNotConfirmation ( メッセージの文字列パターン )
- verifyConfirmation ( メッセージの文字列パターン )
- verifyNotConfirmation ( メッセージの文字列パターン )
- waitForConfirmation ( メッセージの文字列パターン )
- waitForNotConfirmation ( メッセージの文字列パターン )
- storePrompt ( variableName )
事前に実行されたActionコマンドによって発生したJavascriptの質問プロンプトのメッセージを回収します。
プロンプトに対してうまく扱うためには、事前にanswerOnNextPromptコマンドを実行しておく必要があります。プロンプトが発生して取得も検証もしなかった場合、Seleniumの次のコマンドはエラーとなります。
(注)Seleniumの制御下では、プロンプトは目に見えるダイアログとしてポップアップしません。
(注)Seleniumは、ページのonload()イベントハンドラによって発生するJavascriptの確認ダイアログはサポートしていません。この場合には、目に見えるダイアログが出現し、手動でOKをクリックするまでSeleniumは停止してしまいます。
.
(戻り値)
最も新たに発生したJavaScript 質問promptのメッセージ
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertPrompt ( メッセージの文字列パターン )
- assertNotPrompt ( メッセージの文字列パターン )
- verifyPrompt ( メッセージの文字列パターン )
- verifyNotPrompt ( メッセージの文字列パターン )
- waitForPrompt ( メッセージの文字列パターン )
- waitForNotPrompt ( メッセージの文字列パターン )
- storeLocation ( variableName )
現在のページの絶対URLを取得します。
.
(戻り値)
現在のページの絶対URL
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertLocation ( URLの文字列パターン )
- assertNotLocation ( URLの文字列パターン )
- verifyLocation ( URLの文字列パターン )
- verifyNotLocation ( URLの文字列パターン )
- waitForLocation ( URLの文字列パターン )
- waitForNotLocation ( URLの文字列パターン )
- storeTitle ( variableName )
現在のページのタイトルを取得します。
.
(戻り値)
現在のページのタイトル
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertTitle ( titleの文字列パターン )
- assertNotTitle ( titleの文字列パターン )
- verifyTitle ( titleの文字列パターン )
- verifyNotTitle ( titleの文字列パターン )
- waitForTitle ( titleの文字列パターン )
- waitForNotTitle ( titleの文字列パターン )
- storeBodyText ( variableName )
そのページのテキスト全体を取得します。
.
(戻り値)
そのページのテキスト全体
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertBodyText ( テキスト文字列パターン )
- assertNotBodyText ( テキスト文字列パターン )
- verifyBodyText ( テキスト文字列パターン )
- verifyNotBodyText ( テキスト文字列パターン )
- waitForBodyText ( テキスト文字列パターン )
- waitForNotBodyText ( テキスト文字列パターン )
- storeValue ( locator, variableName )
入力フィールド及びvalueパラメータを持つ要素の(空白整形された)値を取得します。チェックボックスやラジオボタンに対しては、チェックされているか(選択されているか)どうかで"on"または"off"が取得されます。
.
(引数の説明)
* locator - an element locator
.
(戻り値)
要素のvalue、又はチェックボックス/ラジオボタンの場合は "on/off"
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertValue ( locator, value属性の文字列パターン )
- assertNotValue ( locator, value属性の文字列パターン )
- verifyValue ( locator, value属性の文字列パターン )
- verifyNotValue ( locator, value属性の文字列パターン )
- waitForValue ( locator, value属性の文字列パターン )
- waitForNotValue ( locator, value属性の文字列パターン )
- storeText ( locator, variableName )
要素のテキスト文字列を取得します。このコマンドはテキストを含むどの要素に対しても動作します。このコマンドは、ユーザに見えるレンダリングされたテキストである要素について、テキストコンテント(Mozillaのようなブラウザ)の要素もインナーテキスト(IEのようなブラウザ)の要素も取り扱います。
.
(引数の説明)
* locator - an element locator
.
(戻り値)
要素のテキスト文字列
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertText ( locator, テキスト文字列パターン )
- assertNotText ( locator, テキスト文字列パターン )
- verifyText ( locator, テキスト文字列パターン )
- verifyNotText ( locator, テキスト文字列パターン )
- waitForText ( locator, テキスト文字列パターン )
- waitForNotText ( locator, テキスト文字列パターン )
- storeEval ( script, variableName )
指定したJavascriptを実行し、その評価結果を取得します。実行するスクリプトは複数行に渡るかもしれませんが、最終行の結果のみを取得します。
デフォルトでは、スクリプトは"selenium"オブジェクト自身のコンテキスト内で実行されることに注意してください。つまり、スクリプトはSeleniumオブジェクトを参照して、あなたのアプリケーションのウィンドウではなく、TestRunnerのテストウィンドウに対して実行されてしまいます。
もしあなたのアプリケーションのウィンドウを参照する必要があるなら、あなたはthis.browserbot.getCurrentWindow()を使うことができます。また、あなたのアプリケーションのとある要素についてのLocatorを使う必要があるなら、this.page().findElement("指定したいElementLocator")を使うことができます。
.
(引数の説明)
* script - 実行するJavaScript
.
(戻り値)
Javascriptを実行した評価結果
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertEval ( script, scriptを実行した結果の文字列パターン )
- assertNotEval ( script, scriptを実行した結果の文字列パターン )
- verifyEval ( script, scriptを実行した結果の文字列パターン )
- verifyNotEval ( script, scriptを実行した結果の文字列パターン )
- waitForEval ( script, scriptを実行した結果の文字列パターン )
- waitForNotEval ( script, scriptを実行した結果の文字列パターン )
- storeChecked ( locator, variableName )
トグルボタン(チェックボックス/ラジオボタン)が選択されているかどうかを取得します。指定した要素が無かったりトグルボタンでない場合にはエラーとなります。
.
(引数の説明)
* locator - チェックボックスまたはラジオボタンを示すelement locator
.
(戻り値)
選択されているかどうかによって"true"又は"false"
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertChecked ( locator, pattern )
- assertNotChecked ( locator, pattern )
- verifyChecked ( locator, pattern )
- verifyNotChecked ( locator, pattern )
- waitForChecked ( locator, pattern )
- waitForNotChecked ( locator, pattern )
- storeTable ( tableCellAddress, variableName )
table要素のセルアドレスからテキスト文字列を取得します。セルアドレスの書式は「テーブルを示すElementLocator.行.カラム」です。行とカラムは0始まりで指定します。
.
(引数の説明)
- tableCellAddress - table要素のセルアドレス。例:"foo.1.4"
.
(戻り値)
指定したセルのテキスト文字列
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertTable ( tableCellAddress, 指定したセルの文字列パターン )
- assertNotTable ( tableCellAddress, 指定したセルの文字列パターン )
- verifyTable ( tableCellAddress, 指定したセルの文字列パターン )
- verifyNotTable ( tableCellAddress, 指定したセルの文字列パターン )
- waitForTable ( tableCellAddress, 指定したセルの文字列パターン )
- waitForNotTable ( tableCellAddress, 指定したセルの文字列パターン )
- storeSelectedLabels ( selectLocator, variableName )
指定したselect要素(複数選択可能なものも含む)にて選択されている全てのoption要素のラベル(表示されるテキスト文字列)を取得します。
.
(引数の説明)
- selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素ラベルの配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedLabels ( selectLocator, ラベルの配列を表す文字列パターン )
- assertNotSelectedLabels ( selectLocator, ラベルの配列を表す文字列パターン )
- verifySelectedLabels ( selectLocator, ラベルの配列を表す文字列パターン )
- verifyNotSelectedLabels ( selectLocator, ラベルの配列を表す文字列パターン )
- waitForSelectedLabels ( selectLocator, ラベルの配列を表す文字列パターン )
- waitForNotSelectedLabels ( selectLocator, ラベルの配列を表す文字列パターン )
- storeSelectedLabel ( selectLocator, variableName )
指定したselect要素において選択されているoption要素のラベル(表示されるテキスト文字列)を取得します。
.
(引数の説明)
.
- selectLocator - select要素を示すelement locator
(戻り値)
選択されているoption要素のラベル
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedLabel ( selectLocator, ラベル文字列パターン )
- assertNotSelectedLabel ( selectLocator, ラベル文字列パターン )
- verifySelectedLabel ( selectLocator, ラベル文字列パターン )
- verifyNotSelectedLabel ( selectLocator, ラベル文字列パターン )
- waitForSelectedLabel ( selectLocator, ラベル文字列パターン )
- waitForNotSelectedLabel ( selectLocator, ラベル文字列パターン )
- storeSelectedValues ( selectLocator, variableName )
指定したselect要素(複数選択可能なものを含む)にて選択されている全てのoption要素のvalue属性値を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素のvalue属性値配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedValues ( selectLocator, value属性値配列を表す文字列パターン )
- assertNotSelectedValues ( selectLocator, value属性値配列を表す文字列パターン )
- verifySelectedValues ( selectLocator, value属性値配列を表す文字列パターン )
- verifyNotSelectedValues ( selectLocator, value属性値配列を表す文字列パターン )
- waitForSelectedValues ( selectLocator, value属性値配列を表す文字列パターン )
- waitForNotSelectedValues ( selectLocator, value属性値配列を表す文字列パターン )
- storeSelectedValue ( selectLocator, variableName )
指定したselect要素にて選択されているoption要素のvalue属性値を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素のvalue属性値
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedValue ( selectLocator, value属性値文字列パターン )
- assertNotSelectedValue ( selectLocator, value属性値文字列パターン )
- verifySelectedValue ( selectLocator, value属性値文字列パターン )
- verifyNotSelectedValue ( selectLocator, value属性値文字列パターン )
- waitForSelectedValue ( selectLocator, value属性値文字列パターン )
- waitForNotSelectedValue ( selectLocator, value属性値文字列パターン )
- storeSelectedIndexes ( selectLocator, variableName )
指定したselect要素(複数選択可能なものを含む)にて選択されている全てのoption要素のインデックス(0から始まるoptionの順番)を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素のインデックス配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedIndexes ( selectLocator, インデックス配列を表す文字列パターン )
- assertNotSelectedIndexes ( selectLocator, インデックス配列を表す文字列パターン )
- verifySelectedIndexes ( selectLocator, インデックス配列を表す文字列パターン )
- verifyNotSelectedIndexes ( selectLocator, インデックス配列を表す文字列パターン )
- waitForSelectedIndexes ( selectLocator, インデックス配列を表す文字列パターン )
- waitForNotSelectedIndexes ( selectLocator, インデックス配列を表す文字列パターン )
- storeSelectedIndex ( selectLocator, variableName )
指定したselect要素にて選択されているoption要素のインデックス(0から始まるoptionの順番)を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素のインデックス
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedIndex ( selectLocator, インデックス番号 )
- assertNotSelectedIndex ( selectLocator, インデックス番号 )
- verifySelectedIndex ( selectLocator, インデックス番号 )
- verifyNotSelectedIndex ( selectLocator, インデックス番号 )
- waitForSelectedIndex ( selectLocator, インデックス番号 )
- waitForNotSelectedIndex ( selectLocator, インデックス番号 )
- storeSelectedIds ( selectLocator, variableName )
指定したselect要素(複数選択可能なものを含む)にて選択されている全てのoption要素のid属性値を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素のid属性値配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedIds ( selectLocator, id属性値配列を表す文字列パターン )
- assertNotSelectedIds ( selectLocator, id属性値配列を表す文字列パターン )
- verifySelectedIds ( selectLocator, id属性値配列を表す文字列パターン )
- verifyNotSelectedIds ( selectLocator, id属性値配列を表す文字列パターン )
- waitForSelectedIds ( selectLocator, id属性値配列を表す文字列パターン )
- waitForNotSelectedIds ( selectLocator, id属性値配列を表す文字列パターン )
- storeSelectedId ( selectLocator, variableName )
指定したselect要素にて選択されているoption要素のid属性値を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
選択されているoption要素のid属性値
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectedId ( selectLocator, id属性値文字列パターン )
- assertNotSelectedId ( selectLocator, id属性値文字列パターン )
- verifySelectedId ( selectLocator, id属性値文字列パターン )
- verifyNotSelectedId ( selectLocator, id属性値文字列パターン )
- waitForSelectedId ( selectLocator, id属性値文字列パターン )
- waitForNotSelectedId ( selectLocator, id属性値文字列パターン )
- storeSomethingSelected ( selectLocator, variableName )
select要素でいずれかのoption要素が選択されているかを判定します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
いずれかのoption要素が選択されていればtrue、さもなくばfalse
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSomethingSelected ( selectLocator )
- assertNotSomethingSelected ( selectLocator )
- verifySomethingSelected ( selectLocator )
- verifyNotSomethingSelected ( selectLocator )
- waitForSomethingSelected ( selectLocator )
- waitForNotSomethingSelected ( selectLocator )
- storeSelectOptions ( selectLocator, variableName )
指定したselect要素に含まれる全てのoption要素を取得します。
.
(引数の説明)
* selectLocator - select要素を示すelement locator
.
(戻り値)
指定したselect要素に含まれる全てのoption要素ラベルの配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertSelectOptions ( selectLocator, option要素ラベルの配列文字列パターン )
- assertNotSelectOptions ( selectLocator, option要素ラベルの配列文字列パターン )
- verifySelectOptions ( selectLocator, option要素ラベルの配列文字列パターン )
- verifyNotSelectOptions ( selectLocator, option要素ラベルの配列文字列パターン )
- waitForSelectOptions ( selectLocator, option要素ラベルの配列文字列パターン )
- waitForNotSelectOptions ( selectLocator, option要素ラベルの配列文字列パターン )
- storeAttribute ( attributeLocator, variableName )
要素のattribute(属性)値を取得します。
.
(引数の説明)
* attributeLocator - 要素の属性値を示すelement locator (訳注:Xpath指定することが多いです)
.
(戻り値)
指定した属性の値
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertAttribute ( attributeLocator, 指定した属性の値を表す文字列パターン )
- assertNotAttribute ( attributeLocator, 指定した属性の値を表す文字列パターン )
- verifyAttribute ( attributeLocator, 指定した属性の値を表す文字列パターン )
- verifyNotAttribute ( attributeLocator, 指定した属性の値を表す文字列パターン )
- waitForAttribute ( attributeLocator, 指定した属性の値を表す文字列パターン )
- waitForNotAttribute ( attributeLocator, 指定した属性の値を表す文字列パターン )
- storeTextPresent ( pattern, variableName )
ユーザーが目にするレンダリングされたページのどこかに指定したテキスト文字列パターンがあるか検証します。
.
(引数の説明)
* pattern - マッチングに用いる文字列パターン
.
(戻り値)
パターンにマッチしたものがあればtrue、なければfalse
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertTextPresent ( 表示されているテキスト文字列パターン )
- assertTextNotPresent ( 表示されているテキスト文字列パターン )
- verifyTextPresent ( 表示されているテキスト文字列パターン )
- verifyTextNotPresent ( 表示されているテキスト文字列パターン )
- waitForTextPresent ( 表示されているテキスト文字列パターン )
- waitForTextNotPresent ( 表示されているテキスト文字列パターン )
- storeElementPresent ( locator, variableName )
指定した要素がそのページのどこかにあるか検証します。
.
(引数の説明)
* locator - an element locator
.
(戻り値)
その要素があればtrue、なければfalse
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertElementPresent ( locator )
- assertElementNotPresent ( locator )
- verifyElementPresent ( locator )
- verifyElementNotPresent ( locator )
- waitForElementPresent ( locator )
- waitForElementNotPresent ( locator )
- storeVisible ( locator, variableName )
指定した要素が表示されるかどうかを判定します。ある要素は、CSS(カスケードスタイルシート)で自分自身または自分の親要素の""visibility"プロパティを"hidden"に設定したり、"display"プロパティを"none"に設定したりすることによって表示しないようレンダリングされることがあります。このコマンドは指定した要素が表示されない設定になっているとエラーとなります。
.
(引数の説明)
* locator - an element locator
.
(戻り値)
指定した要素が表示されるならtrue、表示されないならfalse
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertVisible ( locator )
- assertNotVisible ( locator )
- verifyVisible ( locator )
- verifyNotVisible ( locator )
- waitForVisible ( locator )
- waitForNotVisible ( locator )
- storeEditable ( locator, variableName )
指定したinput要素が編集可能かどうか判定します。このコマンドは指定した要素がinput要素でない場合エラーとなります。
.
(引数の説明)
* locator - an element locator
.
(戻り値)
input要素が編集可能ならtrue、編集不可ならfalse
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertEditable ( locator )
- assertNotEditable ( locator )
- verifyEditable ( locator )
- verifyNotEditable ( locator )
- waitForEditable ( locator )
- waitForNotEditable ( locator )
- storeAllButtons ( variableName )
そのページの全てのボタンのidを返却します。ボタンにidが無い場合、配列には""として表示されます。
.
(戻り値)
ページにあるボタンのid配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertAllButtons ( id配列を表す文字列パターン )
- assertNotAllButtons ( id配列を表す文字列パターン )
- verifyAllButtons ( id配列を表す文字列パターン )
- verifyNotAllButtons ( id配列を表す文字列パターン )
- waitForAllButtons ( id配列を表す文字列パターン )
- waitForNotAllButtons ( id配列を表す文字列パターン )
- storeAllLinks ( variableName )
そのページにある全てのリンクのidを返します。リンクがidを持っていない場合、配列には""として表示されます。
.
(戻り値)
ページ上の全てのリンクのid配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertAllLinks ( id配列を表す文字列パターン )
- assertNotAllLinks ( id配列を表す文字列パターン )
- verifyAllLinks ( id配列を表す文字列パターン )
- verifyNotAllLinks ( id配列を表す文字列パターン )
- waitForAllLinks ( id配列を表す文字列パターン )
- waitForNotAllLinks ( id配列を表す文字列パターン )
- storeAllFields ( variableName )
そのページの全ての入力フィールドのidを返します。入力フィールドにidが無い場合、配列には""として表示されます。
.
(戻り値)
ページにある全ての入力フィールドのid配列(カンマ区切り)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertAllFields ( id配列を表す文字列パターン )
- assertNotAllFields ( id配列を表す文字列パターン )
- verifyAllFields ( id配列を表す文字列パターン )
- verifyNotAllFields ( id配列を表す文字列パターン )
- waitForAllFields ( id配列を表す文字列パターン )
- waitForNotAllFields ( id配列を表す文字列パターン )
- storeHtmlSource ( variableName )
"html"タグで括られた全てのHTMLソースを返します。
.
(戻り値)
HTMLソース全体
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertHtmlSource ( HTMLソースを表す文字列パターン )
- assertNotHtmlSource ( HTMLソースを表す文字列パターン )
- verifyHtmlSource ( HTMLソースを表す文字列パターン )
- verifyNotHtmlSource ( HTMLソースを表す文字列パターン )
- waitForHtmlSource ( HTMLソースを表す文字列パターン )
- waitForNotHtmlSource ( HTMLソースを表す文字列パターン )
- storeCursorPosition ( locator, variableName ) (Coreバージョン0.7.0未収録、RC0.8.1新規コマンド)
指定したinput要素またはテキストエリアにおけるカーソル位置を取得します。このコマンドは全てのブラウザで完璧に動作するわけではないので注意してください。
.
特に、カーソルや選択がJavaScriptによってクリアされた場合、カーソルが今現在ページからなくなったようでも、このコマンドはカーソルが最後にあった位置を返す傾向があります。(これはバグ番号SEL-243として報告されています)
このコマンドは指定した要素がinput要素またはテキストエリアでない場合、もしくは要素にカーソルが無い場合エラーとなります。
.
(引数の説明)
* locator - input要素またはテキストエリアを示すelement locator
.
(戻り値)
フィールド内のカーソル位置(何文字目か)
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertCursorPosition ( locator, カーソル位置 )
- assertNotCursorPosition ( locator, カーソル位置 )
- verifyCursorPosition ( locator, カーソル位置 )
- verifyNotCursorPosition ( locator, カーソル位置 )
- waitForCursorPosition ( locator, カーソル位置 )
- waitForNotCursorPosition ( locator, カーソル位置 )
- storeExpression ( expression, variableName )
指定した表現を返却します。
.
これはJavaScriptのプリプロセッシングのために有効です。これはassertExpression やstoreExpressionといったコマンドを生成します。
.
(引数の説明)
- expression - 返却する値
.
(戻り値)
(JavaScriptによって)評価された値
.
以下の関連Assertionコマンドが自動的に生成されます。
- assertExpression ( expression, 評価された値を表す文字列パターン )
- assertNotExpression ( expression, 評価された値を表す文字列パターン )
- verifyExpression ( expression, 評価された値を表す文字列パターン )
- verifyNotExpression ( expression, 評価された値を表す文字列パターン )
- waitForExpression ( expression, 評価された値を表す文字列パターン )
- waitForNotExpression ( expression, 評価された値を表す文字列パターン )
パラメータの組み立てと変数
Seleniumの全てのコマンドのパラメータは、単純な変数代入と、javascriptの豊富な記述方法のどちらを使っても組み立てることができます。両方のメカニズムにおいて、先行して格納された変数にアクセスすることが可能です。但し、表記方法は異なります。
- 変数の格納
storeコマンド、storeValueコマンド、storeTextコマンドは、他のコマンドが後でアクセスするための変数に値を格納するために使用されます。内部的に、これらの変数は"storedVars"と呼ばれるmapに変数名をキーとして値と一緒に格納されます。
これらのコマンドについては上述のコマンドリファレンスを参照してください。
- 変数の代入
変数の代入は、先立って格納されてた変数をコマンドのパラーメータに含めるためのシンプルな方法です。やり方は単純で、代入したい変数を ${変数名} と指定すればよいのです。複数の変数を代入することができ、静的なテキストと一緒に混ぜて使用することもできます。
(例)
| store |
Mr |
title |
| storeValue |
nameField |
surname |
| store |
${title} ${surname} |
fullname |
| type |
textElement |
Full name is: ${fullname} |
- Javascript評価
Javascript 評価は、コマンドのパラメータを組み立てるにあたってjavascriptの機能を使うことができます。このメカニズムを使用するためには、パラメータの値全体を「javascript{」と「}」で囲まなければなりません。大括弧{}内のテキストはjavascript表現として評価され、上述したstoredVarsというmapを用いることで先行して格納された変数にアクセスすることができます。変数代入はjavascript評価と一緒に用いることはできないことに注意してください。
(例)
| store |
javascript{'merchant' + (new Date()).getTime()} |
merchantId |
| type |
textElement |
javascript{storedVars['merchantId'].toUpperCase()} |
Seleniumの拡張
あなた独自のActionコマンドやAssertionコマンド、ElementLocatorを追加して、Seleniumの拡張を行うことは非常にシンプルに実施が可能です。これはjavascriptにSeleniumオブジェクトのプロトタイプとPageBotオブジェクトのプロトタイプのメソッドを追加することで実施されます。Seleniumは起動時に、これらのプロトタイプのメソッドを自動的に見に行き、メソッド名のパターンによってそれが Actionか、Assertionか、Locatorかを認識します。
以下にjavascriptを使ってSeleniumをどのように拡張するかを指示する例を示します。
- Actionコマンド
doFoo メソッドをActionコマンドとしてSeleniumプロトタイプに追加すると、fooコマンドとして登録されると同時に、fooAndWaitコマンドとしても登録されます。Actionコマンド用のメソッドは2つまでのパラメータを持つことができ、テストケースの2番目及び3番目のカラムの値が渡されます。
.
例:テキストボックスに2回入力を行う"typeRepeated"コマンドを追加します。
.
"typeRepeated"コマンドの追加
Selenium.prototype.doTypeRepeated = function(locator, text) {
// All locator-strategies are automatically handled by "findElement"
var element = this.page().findElement(locator);
// Create the text to type
var valueToType = text + text;
// Replace the element text with the new text
this.page().replaceText(element, valueToType);
};
- Accesorコマンド/Assertionコマンド
SeleniumプロトタイプにgetFoo又はisFooメソッドを追加すると、Accesorコマンド(storeFoo)として認識されます。各Accesorに対して、assertFooと verifyFoo 、waitForFooが登録されます。
assert メソッドは2つまでのパラメータを持つことができ、テストケースの2番目及び3番目のカラムの値が渡されます。また、あなたは自分独自の Assertionコマンドを作成することができ、シンプルな"assert"メソッドの定義をすることで"verify"コマンドと"waitFor" コマンドが生成されます。
.
例: "valueRepeated"というAssertionコマンドを追加します。これは要素の値(value)が指定されたテキストの繰り返しから成り立っているかを確認するものです。テストにおいてはassertValueRepeatedとverifyValueRepeatedという2つのコマンドが使用可能となります。
.
"assertValueRepeated"コマンドの追加
Selenium.prototype.assertValueRepeated = function(locator, text) {
// All locator-strategies are automatically handled by "findElement"
var element = this.page().findElement(locator);
// Create the text to verify
var expectedValue = text + text;
// Get the actual element value
var actualValue = element.value;
// Make sure the actual value matches the expected
this.assertMatches(expectedValue, actualValue);
};
- ElementLocator
locateElementByFoo メソッドをElementLocatorとしてPageBotプロトタイプに追加します。ElementLocatorは2つのパラメータを持ち、1番目は場所を示す文字列(プレフィックスは除く)、2番目は検索対象のドキュメントです。
.
例:"valuerepeated="という、属性の値が繰り返されている要素を見つけるElementLocatorを追加します。
.
"valuerepated= " elementLocatorの追加
// The "inDocument" is a the document you are searching.
PageBot.prototype.locateElementByValueRepeated = function(text, inDocument) {
// Create the text to search for
var expectedValue = text + text;
// Loop through all elements, looking for ones that have
// a value === our expected value
var allElements = inDocument.getElementsByTagName("*");
for (var i = 0; i < allElements.length; i++) {
var testElement = allElements[i];
if (testElement.value && testElement.value === expectedValue) {
return testElement;
}
}
return null;
};
- user-extensions.js
Selenium はデフォルトで"user-extension.js"と呼ばれるファイルを探して、そのファイル内のjavascriptコードを読み込みます。このファイルによって、Seleniumの中核のソースコードを修正することなく、機能追加を簡単に行うことができます。
標準の配布状態では、このファイルは存在していません。ユーザーはこのファイルを作成して独自の拡張コードを記述することができます。Seleniumのソース自体を修正する必要がなく、うまくいけばアップグレードの手助けをすることができるのです。
 | welcome
このページの日本語訳を追加または修正してください。 |
|
|