テーブルを含む Selenium IDE で Web ページをテストしています。CSS セレクターを使用して、表のセル (行、列) 内のテキストを確認したいと思います。テーブルの HTML 構造は非常に単純です。以下は、各行が個人の異なる属性を表す表のサンプルです。
<html...>
<head>
</head>
<body>
<div class="pageBody">
<table>
<tbody>
<tr>
<td></td>
<td>AGE</td>
<td>49</td>
</tr>
<tr>
<td></td>
<td>WEIGHT</td>
<td>165</td>
</tr>
... and so on
Selenium IDE では、次の CSS セレクターを使用して、AGE を含むテーブル行で「49」を見つけることができます。
(アプローチ 1) css=#pageBody テーブル tbody tr:nth-child(1) td:nth-child(3)
ただし、すべてのテーブルの行数が同じであると確信できない場合 (各ユーザーが利用できるデータに基づいて動的に作成されたテーブルの場合)、疑似セレクターを nth-child から contains に変更できます。
(アプローチ 2) css=#pageBody テーブル tbody tr:contains('AGE') td:nth-child(3)
問題は、これらのアプローチを JUnit コードとしてエクスポートするときに発生します。次の JUnit コードのブロックが機能します。
(アプローチ 1を使用)
WebDriver.findElement (By.cssSelector ("#pageBody table tbody tr:nth-child(1) td:nth-child(3)"))
JUnit コードの次のブロックは失敗します。
(アプローチ 2を使用)
WebDriver.findElement (By.cssSelector ("#pageBody table tbody tr:contains('AGE') td:nth-child(3)"))
JUnit APPROACH 2が完全に有効な CSS セレクターを見つけられず、Selenium IDE で非常にうまく機能する理由を知っている人はいますか? 明確にするために質問してください。これについて何か光を当てていただきありがとうございます。