Selenium IDE Tips3

2010年10月10日

Xpath

No.タイトル配信日削除
1108タイトル12010-10-01
1109タイトル22010-10-01
1110タイトル32010-10-01
1111タイトル42010-10-01

こういうテーブルがあって、たとえば「タイトル3」を見つけて、その隣の「削除」チェックボックスをチェックしたいとき、XPathを使うことになる。
//text()[contains(.,'タイトル3')]/parent::node()/following-sibling::td[2]/input
タイトル3にマッチしたら、その親ノードに移動し「/parent::node()」、同じ階層の後ろの2つめのtdタグへ移動し「/following-sibling::td[2]」、それのinputタグへたどりつく、というもの。それをクリックすれば良いのでSeleniumでは
<tr>
 <td>click</td>
 <td>//text()[contains(.,'タイトル3')]/parent::node()/following-sibling::td[2]/input</td>
 <td></td>
</tr>
というテストケースになる。というわけでXPathを利用すればかなりいろいろなテストができそう。
今回はメルマガ配信システムなので、実際にメールアカウントをGmailへ登録しておき、Seleniumで自動配信されたメールが届いているかどうか、Gmailで確認することもできた。

Xpath 2

さらにテーブル要素の「配信日」でマッチしたら、その次の列の最初のtdの要素を変数に定義するにはこうする。Xpathは
//text()[contains(.,'配信日')]/parent::node()/parent::node()/following-sibling::tr[1]/td[1]
なので
<tr>
 <td>storeText</td>
 <td>//text()[contains(.,'配信日')]/parent::node()/parent::node()/following-sibling::tr[1]/td[1]</td>
 <td>id_no</td>
</tr>
Xpathで取得した値を変数に格納するにはstoreTextを使う。



« Selenium IDE Tips2 | メイン | 百日紅 »