0

それが私がセレンで検証したい私の情報源です:

<tr class="myclass">
    <td class="column" style="width:50%"> Key </td>
    <td style="width:50%"> Value </td>
    <td style="width:50%"> &nbsp; </td>
</tr>

彼の「価値観」という言葉がそこに含まれていることを確認したいと思います。

次のステートメントは常に次を返します:「値」ではなく「キー」

driver.findElement(By.xpath("//tr[td[contains(text(), 'Key')]]/td")).getText();

私は何が間違っているのですか?xpath式のテキストを取得するにはどうすればよいですか?

4

3 に答える 3

1

ここでこれを試してください

driver.findElement(By.xpath("//tr[@class='myclass']/td[1]")).getText();

表のすべての列は兄弟です。配列なしでそれらを呼び出すと、最初の値が返されます。td [1]が機能しない場合は、td[2]を試してください。

于 2012-08-30T13:49:35.720 に答える
0

cssセレクターを使用してみてください

driver.findElement(By.cssselector(".myclass > td[style='width:50%']")).getText();

于 2012-08-30T16:01:01.293 に答える
0

なぜこれだけではないのですかこのように、それはそれがどの位置にあるかに依存せず、それが存在するだけですか?

//tr/descendant::td[contains(text(), 'Value')]

または、次でFindElementsを実行します。

//tr[@class='myclass']/td

次に、それらすべてをループして、「値」が表示されることを確認します。

于 2012-08-30T13:51:41.147 に答える