我有一些带有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]
。
无论如何要做到这一点?
答案 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"
。