使用Selenium和java查找href链接

使用Selenium和java查找href链接,java,html,eclipse,selenium,selenium-webdriver,Java,Html,Eclipse,Selenium,Selenium Webdriver,我有一些带有href链接的html代码。其中包括: <a href="#"> 而其他人则是这样 <a href = "http://.....'>. 如果要检查a链接是否具有href属性: driver.findElements(By.xpath("//a[@href]")); 您还可以使用XPath或运算符检查a标记的特定实例: driver.findElements(By.xpath("//a[@href='#' or starts-with(@href

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

<a href="#">

而其他人则是这样

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

如果要检查
a
链接是否具有
href
属性:

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

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

driver.findElements(By.xpath("//a[@href='#' or starts-with(@href, 'http://')]")
这将返回所有锚定标记,这些锚定标记的
href
属性等于
#
href
属性以
http://
开头


此解决方案不如@alecxe中的解决方案简单,但它可能会让您的选择更加灵活。它还提供了“过滤掉”不需要的锚标记的选项。例如,此解决方案不会返回具有相对路径的
href
属性的锚定标记,例如
href=“path/to/other/webpage.html”

我将使用一个简单的CSS选择器来查找具有
href
属性的
标记

List<WebElement> elements = driver.findElements(By.cssSelector("a[href]"));
List elements=driver.findElements(By.cssSelector(“a[href]”);

Tony,重读你的问题。它似乎不完整,可能需要更多信息。@SunSparc只是HTML标记有问题-已修复。我不需要在其中的某个位置使用“或”吗?事实上,是的,同意。请参阅我的编辑。可以使用
|
进行此操作。