私はセレンとxpathに少し新しく、私が何か正しいことをしていて、findElementがどのように動作するのか不思議です。私は見て、例を探しましたが、私は見つけることができません。この表(簡易しかし、関連する)を考えるとxpath(ネストされたFindElementをJavaで使用)を使用してテーブルを解析する
<table>
<thead></thead>
<tbody>
<tr>
<td>R1C1</td>
<td>R1C2</td>
</tr>
<tr>
<td>R2C1</td>
<td>R2C2</td>
</tr>
</tbody>
</table>
私は次のように使用している場合は、私が期待してい情報を持っているのだろうか?
WebElement r1 = driver.findElement(By.xpath("//table/tbody/tr[1]"));
String r1c1 = r1.findElement(By.xpath("//td[1]")).getText();
String r1c2 = r1.findElement(By.xpath("//td[2]")).getText();
WebElement r2 = driver.findElement(By.xpath("//table/tbody/tr[2]"));
String r2c1 = r1.findElement(By.xpath("//td[1]")).getText();
String r2c2 = r1.findElement(By.xpath("//td[2]")).getText();
Altキー:
String r2c1 = driver.findElement(By.xpath("//table/tbody/tr[2]")).findElement(By.xpath("//td[1]")).getText();
これは私が実際にやっていると比較して非常に単純化であるが、私は残りの部分が動作する確信していますのでご注意ください。私の質問は、別の要素から要素を見つけ出すことを特に中心にしています。また、テーブルの特定のセルを特定するために使用できる固有のクラス/ IDタグはありません。
これは私の期待通りに機能しますか?私はむしろExecution Performance
良い方向にKeep It Short and Simple
にお勧めし
プレフィックスあなたが別の要素の中の要素を見つけるために使用しているのxpath:あなたは、以下の4つの
WebElements
からgetText()
にしたい場合ははそれとして、単純なように保ちますたとえば、r1.findElement(By.xpath( ".// td [1]"))。getText(); – Grasshopper
詳細 - https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#findElements-org.openqa.selenium.By- – Grasshopper
ブーム、それがあります。ありがとう! –