2014-07-03 135 views
-1

通過首先查找包含特定文本的「td」來單擊「a」元素的代碼是什麼?在Selenium WebDriver Java中單擊其他單元的子元素Java

<table>  
    <tbody> 
     <tr> 
      <td><a class="link">link</a></td> 
      <td>1st</td> 
     </tr> 
     <tr> 
      <td><a class="link">link</a></td> 
      <td>2nd</td> 
     </tr> 
    </tbody> 
</table> 

我使用了這段代碼,但它不起作用。

driver.findElement(By.xpath("//td[contains(text(), '1st')]/following-sibling::a[@class='link']")).click(); 

回答

0

試試這個xPath //td[contains(text(), '1st')]/../td/a[@class='link']

你的錯誤來自軸「跟隨兄弟姐妹」。標籤a不是td標籤的兄弟。我用..上去,然後再選擇td然後a

我使用http://www.xpathtester.com/xpath測試了xPath。有用。請注意,每個瀏覽器都帶有自己的xPath實現,因此它可能會有所不同。

但是,由於xPath表達式中沒有任何外來的東西,我不認爲會有任何問題。

+0

它的工作原理。非常感謝!歡呼:) – phantom

+0

不客氣。 – Algiz

+0

另外請注意,當元素上有多個類時,「class =」會導致問題。 Xpath將類屬性視爲文字字符串,因此任何添加的類或按順序更改都會破壞xpath。我會使用[contains(@class,「link」)]但這也有影響 –

相關問題