以前、「Seleniumでの画面テスト」というエントリーでのテストフレームワークとして、Seleniumを紹介しました。
上記のエントリーですが、単なるインストールと基本的な起動、簡単な文字入力ぐらいしか書いてないですね。
ちょっとここで整理しておこうかと思います。
なお、HTMLの要素の取得に関してはすべてidでの取得を前提に考えています。
idの生成に関して
先述したエントリーでも書きましたが、idは親のformのid:自分のidになります。
通常のidの考え方と違うのでこの部分が注意です。
通常のテキストの取得
指定idのコンポーネントのテキストを取得したいとき
1 2 3 4 |
public String getTextById(String htmlFormId) { WebElement element = webDriver.findElement(By.id(htmlFormId)); return element.getText(); } |
テキストボックスへの値の入力
指定idに値を入力するケース
1 2 3 4 5 |
public void setSingleParameterWebElement(String htmlFormId, String value) { WebElement webelement = webDriver.findElement(By.id(htmlFormId)); webelement.clear(); webelement.sendKeys(value); } |
プルダウン
指定idに値を入力するケース
注意点として、プルダウンは値ではなく、画面の表示項目です。option value=””のほうではなく単純に画面に表示されている値をセットすることになります。
1 2 3 4 |
public void setSingleParameterWebElementPulldown(String htmlFormId, String value) { Select webElement = new Select(webDriver.findElement(By.id(htmlFormId))); webElement.selectByVisibleText(value); } |
参考リンク Selenium WebDriver使ってみた③ フォームの選択方法編
ラジオボタン
指定idに値を入力するケース。プルダウン同様、画面表示値をセットします。
1 2 3 4 |
public void setSingleParameterWebElementRadioButton(String htmlFormId, String value) { WebElement webElement = webDriver.findElement(By.id(htmlFormId + ":" + value)); webElement.click(); } |
チェックボックス
指定idのチェックボックスにチェックを入れるとき
1 2 3 |
public void checkButtonById(String formId){ webDriver.findElement(By.id(buttonId).click(); } |
参考リンク Selenium WebDriver使ってみた② 自動ログイン編
ボタンクリック
指定idのボタンをクリックするとき
1 2 3 4 |
public String getTextById(String htmlFormId) { WebElement submitButton = webDriver.findElement(By.id(htmlFormId)); submitButton.click(); } |
ダイアログの回答
ボタンクリック後のアラートをSeleniumから聞くときの動作
1 2 3 4 5 |
public void Answer(){ Alert alert = webDriver.switchTo().alert(); alert.dismiss(); //Noを選ぶとき alert.accept(); //OKするとき } |
参考リンク [Selenium2] 自動テストで、ダイアログもテストしてしまう
他にもいろいろありますが、とりあえず入力、ボタンを押す、画面のテキストを取得の最低限の動作はこれでできます。