0

テーブルを含む 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 で非常にうまく機能する理由を知っている人はいますか? 明確にするために質問してください。これについて何か光を当てていただきありがとうございます。

4

1 に答える 1

1

私の知る限り、セレクター:containsは CSS でサポートされていません。テキスト コンテンツに基づいて要素を選択するには、代わりに XPath を使用する必要があります。

于 2012-04-09T17:57:09.137 に答える