2016-08-03 153 views
0

有人能幫助我在尋找的XPath HREF元素

<div class="row 2">   
<a href="URL1" class="class 1">display this </a> 
</div> 

相同URL1Xpath表達在代碼中多次使用

+2

這是什麼?沒有xml沒有輸入,根本不清楚。請提供所有必要輸入的問題的準確解釋。 – SomeDude

回答

1

用CSS選擇器找到你的元素:

driver.findElement(By.cssSelector(
    "div[class='row 2'] > a[class='class 1'][href$='URL1']")); 

要使用XPath找到你的元素:

driver.findElement(By.xpath(
    "//div[@class='row 2']/a[@class='class 1'][text()='display this ']")); 
+0

這也幫助我找到了其他元素的Xpath。謝謝您的幫助 – Tester99

1

試試這個Xpath

//a[@href="URL1"][text()="display this "] 
+0

多次使用URL1,當我使用上面提供的那個時,它提供的是選擇所有具有URL1的地方 – Tester99

1

我建議你嘗試使用By.linkText()作爲:

driver.findElement(By.linkText("display this")); 

或使用By.partiaLinkText()爲:

driver.findElement(By.partiaLinkText("display this")); 

或使用By.cssSelector()爲:

driver.findElement(By.cssSelector("div.row a.class")); 

如果以上都不是正確的找到您的願望元素,則嘗試使用By.xpath()爲:

driver.findElement(By.cssSelector(".//a[contains(text(), 'display this')]")); 
+0

看起來鏈接文本中存在額外的空間,因此您的表達式不會匹配目標元素..或也許這只是提供了'HTML'的一個缺陷:) – Andersson

+0

@Andersson可能,這就是爲什麼我建議一些不同的定位器以及.. :) –

+0

所有這些幫助感謝傢伙 – Tester99

0

XPath是路徑下的HTML元素直接導致你正在尋找的元素。在你的例子中沒有html或body標籤,所以我不能告訴你確切的路徑,但是如果你下載Firebug,你可以使用該工具(在Firefox中)找到你想要的確切元素,然後右鍵點擊html元素並複製精確的XPath。

enter image description here