CodeZine(コードジン)

特集ページ一覧

Selenium 0.7利用手順書(後編)

テストケースの作成とテストの実行

  • LINEで送る
  • このエントリーをはてなブックマークに追加

ダウンロード SeleniumSampleCode.zip (2.0 KB)

目次

テストケースの作成(2/2)

テーブルの検証

 次に、以下のような書籍情報を表示する画面の検証を考えてみましょう。指定した書籍IDに対して、正しいISBNやタイトルを表示しているか検証します。

図6 書籍情報表示画面
図6 書籍情報表示画面

 画面のソースでは2カラム×16行のtableを用いて各項目を格納しています。このtableに対する検証で使用するコマンドは次のとおりです。

  • tableの内容を確認 …… assertTableコマンド

 assertTableコマンドを使用するためには、検証する対象のtableを特定する必要があります。場合によってはxpathdomを使用して特定することも可能ですが、tableが複数あるページなどでは特定方法が困難だったり不可能だったりします。従って画面のソースコード(JSPやhtml)においてtable要素にid属性をあらかじめ付与しておくことを推奨します。

 コマンドの書式は次のとおりです。assert~verify~と記述することもできます。

表5 tableの検証コマンド書式
コマンドターゲットバリュー
assertTable
verifyTable
検証対象のテーブル.行.カラム検証する文字列

 ターゲットは、検証対象テーブル名と、対象セルの行およびカラムを「.」区切りで指定します。行およびカラムは0から数えます。上記の画面例で言うと、テーブル名(id属性)がtable_detailとなっていた場合、「タイトル:」のセルを指定する方法は「table_detail.2.0」となります。

 画面ソース(JSP)の抜粋を示します。

BookInfoDisplay.jsp
……(中略)……

<table id="book_detail" class="book_detail">
    <tr>
        <td class="menu_book_detail">
            書籍ID:
        </td>
        <td class="content_book_detail">
            <bean:write name="DispBookForm" property="book.id"/>
        </td>
    </tr>
    <tr>
        <td class="menu_book_detail">
            ISBN:
        </td>
        <td class="content_book_detail">
            <bean:write name="DispBookForm" property="book.bookInfo.isbn"/>
        </td>
    </tr>
……(中略)……

 3行目。id属性id="book_detail"で、テーブル名を付与しています。

 9行目、17行目。Strutsのbean:writeタグでDispBookFormという名前のActionFormに格納された内容を出力しています。

 ISBNとタイトルの検証を行うテストケースの記述は次のようになります。

BookInfoDisplay_Test_001.html
    ……(中略)……
<tr>
    <td>assertTitle</td>
    <td>MyApp -書籍情報-</td>
    <td></td>
</tr>

<tr>
    <td>assertTable</td>
    <td>book_detail.1.0</td>
    <td>ISBN:</td>
</tr>
<tr>
    <td>assertTable</td>
    <td>book_detail.1.1</td>
    <td>4774123412</td>
</tr>
<tr>
    <td>assertTable</td>
    <td>book_detail.2.0</td>
    <td>タイトル:</td>
</tr>
<tr>
    <td>assertTable</td>
    <td>book_detail.2.1</td>
    <td>Java J2EE オープンソース Spring入門</td>
</tr>
    ……(中略)……

 10行目。tableの対象セルの行およびカラムを0開始で指定しています。テーブルの2行目1カラム目なのでbook_detail.1.0と記述します。

 続いて11行目のISBN:は、対象セルに表示される内容です。

 15行目、20行目、25行目も同様に検証を行う対象のセルを指定しています。

 上記の例ではid属性でテーブルの指定をしていますが、参考として、xpathでテーブルを指定した場合の画面ソースとテストケースを示します。

Content_TableXpath.html
<table border="1">
<tr>
    <td>A1</td>
    <td>B1</td>
    <td>C1</td>
</tr>
<tr>
    <td>A2</td>
    <td>B2</td>
    <td>C2</td>
</tr>
</table>
TestCase_TableXpath.html
<tr>
    <td>assertTable</td>
    <td>xpath=//table.0.1</td>
    <td>B1</td>
</tr>

 3行目のxpath=//table.0.1でxpathでtableを指定しています。

コンボボックスの指定

 今度はコンボボックスの指定方法です。

図7 コンボボックス
図7 コンボボックス

 JSPのコードはStrutのhtml:selectタグを使用して次のようなっています。

ComboBoxSample.jsp
<!-- 年月日のリストを取得 -->
<% request.setAttribute("yearList"
    ,myapp.viewhelper.createYearList()); %>
    <html:select property="year" size="1">
        <html:options name="yearList" labelName="yearList" />
    </html:select>

 このJSPで出力される画面のHTMLソースは次のようになります。

画面のHTMLソース
<select name="year" size="1">
    <option value="2006">2006</option>
    <option value="2007">2007</option>
</select>

 コンボボックスなど、HTMLのselect要素を指定するには以下のコマンドを使用します。

  • コンボボックスの値を指定 …… selectコマンド

 コマンドの書式は次のとおりです。

表6 コンボボックスの選択コマンド書式
コマンドターゲットバリュー
select選択するコンボボックスのelementLocatorOptionLocator

 OptionLocatorは、select要素のオプションを指定する方法です。表示されている文字列で指定する場合、「label=文字列」で指定します。テストケースは次のようになります。

XX_Select_Test_xxx.html
    ……(中略)……
<tr>
    <td>select</td>
    <td>year</td>
    <td>label=2006</td>
</tr>
    ……(中略)……

 4行目。html:selectタグのproperty(name属性)であるyearを指定します。

 続いて5行目。「label=文字列」の形式でlabel=2006と記述し、画面に表示されているラベル(文字列)を指定します。

 また、select要素がmultiple属性を持っており、複数のoptionを選択できる場合、addSelectionコマンド、removeSelectionコマンドで選択肢の追加/削除を行うことができます。addSelectionコマンド、removeSelectionコマンドは、Seleniumのバージョン0.7.0で追加されたコマンドです。

表7 multiple属性のselect要素で選択肢の追加/削除を行うコマンド書式
コマンドターゲットバリュー
addSelection選択状態にするselect要素のElementLocatorOptionLocator
removeSelection非選択状態にするselect要素のElementLocatorOptionLocator

ラジオボタンの指定

 最後にラジオボタンの指定の仕方についてみてみましょう。次のようなラジオボタンがあったとします。

図8 ラジオボタン
図8 ラジオボタン

 ソースコードは次のようになっています。

StrutsJspRadioButton.jsp
<html:radio property="book.lostFlg" value="1" />行方不明
<html:radio property="book.lostFlg" value="0" />所在把握
画面のHTMLソース
<input type="radio" name="book.lostFlg" value="1" >行方不明
<input type="radio" name="book.lostFlg" value="0" >所在把握

 Seleniumでラジオボタンやチェックボックスを選択するにはcheckコマンドを使用します。非選択状態にするにはuncheckコマンドを使用します。checkコマンド、uncheckコマンドはSeleniumのバージョン0.7.0で追加されたコマンドです。

表8 ラジオボタン/チェックボックスを指定するコマンド書式
コマンドターゲットバリュー
check選択したいボタンのElementLocatorなし
uncheck非選択にしたいボタンのElementLocatorなし

 ターゲットのElementLocatorには、ラジオボタンのname属性とvalue属性を組み合わせることで特定が可能となります。「name=」Locatorを使用する場合はElement Filterでvalueを指定して次のように記述します。

name=book.lostFlg value=1

 ElementLocatorとしてxpathを使用する場合は次のような記述になります。

xpath=//input[@name='book.lendability' and @value='1']

 上記のJSPで[行方不明]ボタンをクリックしたい場合のテストケース記述は次のようになります。

RudioButton_TestCase.html
<tr>
    <td>check</td>
    <td>name=book.lostFlg value=1</td>
    <td></td>
</tr>

 3行目で、クリックしたいボタン(行方不明)のnamevalueを指定しています。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2006/08/03 11:40 8/3 SelneiumIDEでassertTitleを自動的に記録する旨の記述を修正(オプション設定)

バックナンバー

連載:Selenium 0.7利用手順書

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5