3

以下は私のHTMLページの抜粋です。

<td id="Platinum" align="center" width="16%">
    <div></div> 
    <a>link1</a>
</td>
<td></td>
<td id="Platinum" align="center" width="16%">
    <div></div>
    <a>link2</a>
</td>
<td id="Platinum" align="center" width="16%">
    <div></div>
    <a>link3</a>
</td>

ここでは、id='platinum'の3番目のtd要素を選択します

私が試したのはdriver.findElement(By.cssSelector("#platinum:nth-of-type(3)"));です。

driver.findElement(By.cssSelector("td[id='platinum']:nth-of-type(3)"));

どちらも、3番目のtdを選択する方法については何も考えていません。id='platinum'

4

3 に答える 3

4

カウントtdを妨げているIDを持たない空があります。:nth-of-type()セレクターは、「n番目の要素とtd」ではなく「n番目の要素」を意味します。したがって、そのIDを持つ3番目は、実際には行全体の4番目です。tdid='platinum'tdtd

tdCSSセレクターを使用して特定のIDを持つ3番目の要素を選択することはできません。代わりにXPathを使用する必要があります。

driver.findElement(By.xpath("//td[@id='Platinum'][3]"));
于 2013-01-17T09:51:39.617 に答える
0

まず第一に。同じ名前のIDを複数持つことはできません。クラスを使用する必要があります。次に、同じメソッドを使用して、クラスを使用して再試行できます。コードは次のようになります。

<td class="Platinum" align="center" width="16%">
于 2013-01-17T09:48:52.603 に答える
0

さらに、JQueryでこれを試した場合、同じ結果が得られる可能性があります。「#id」は、document.getElementByID()関数を使用するためのショートカットである可能性があります。これは、IDが特定のドキュメント内で一意であることを意味するため、IDを持つ最初の要素のみを返します。

于 2013-12-19T11:33:18.947 に答える