2016-08-03 118 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