使用Selenium和java查找href链接

时间:2015-09-09 15:56:06

标签: java html eclipse selenium selenium-webdriver

我有一些带有href链接的html代码。其中一些如下:

<a href="#">

而其他人就像

<a href = "http://.....'>.  

换句话说,对于xpath,我不能使用//a[contains(@href,'#')]//a[contains(@href,'http')],因为它们是互斥的,并且每个都只适用于某些不同的href值。我没有可以搜索的通用字符串。

现在,理论上,href不应该是空白的,所以如果我可以使用像//a[href not blank]那样好的东西。甚至是//a[has href attribute]

无论如何要做到这一点?

2 个答案:

答案 0 :(得分:1)

如果您想检查a个链接是否具有href属性:

driver.findElements(By.xpath("//a[@href]"));

答案 1 :(得分:0)

您还可以使用XPath 运算符检查a代码的特定实例:

driver.findElements(By.xpath("//a[@href='#' or starts-with(@href, 'http://')]")

这将返回href属性等于#的所有锚标记或以href开头的http://属性。

这个解决方案并不像@alecxe那样简单,但它可以让您在选择前进时更灵活。它还为您提供了过滤掉&#39;不需要的锚标签。例如,此解决方案不会返回具有href属性的锚标记,该属性是相对路径,例如href="path/to/another/webpage.html"