5

xpathを使用してWebページをナビゲートしようとしていますが、結果がまちまちです。これは私が使用しているものです:

driver.findElement(By.xpath("//div[contains(@class, 'x-grid3-cell-inner x-grid3-col-0')]"));

それは実際にはうまく機能しますが、私がこれに遭遇している問題は次のとおりです。

<div class="x-grid3-cell-inner x-grid3-col-0" unselectable="on">92300</div>
<div class="x-grid3-cell-inner x-grid3-col-0" unselectable="on">92475</div>
<div class="x-grid3-cell-inner x-grid3-col-0" unselectable="on">92476</div>
<div class="x-grid3-cell-inner x-grid3-col-0" unselectable="on">92301</div>
<div class="x-grid3-cell-inner x-grid3-col-0" unselectable="on">92474</div>

Seleniumテストでそのxpathを実行すると、常に最初のdivが取得されます。xpathを編集して、4番目のdiv(92301)またはリストの最初のdivではない他のdivを取得するにはどうすればよいですか?

4

2 に答える 2

8

このXPath(//div[contains(@class, 'x-grid3-cell-inner x-grid3-col-0')])[4]を使用して4番目 divを取得します。

divテキストを含むものを見つけるには92301、次のXPathを使用します。

//div[contains(text(), '92301')]
于 2013-03-03T23:21:21.150 に答える
3

次のいずれかを使用できますWebElement.findElements()

driver.findElements(By.xpath(...)).get(3)

またはxpathを次のように変更します。

driver.findElement(By.xpath("(//div[contains(@class, 'x-grid3-cell-inner x-grid3-col-0')])[4]"));
于 2013-03-03T23:23:56.947 に答える