如何找到与selenium的链接?

时间:2013-08-29 16:11:17

标签: java xpath selenium

问题是:如何在以下场景中找到Selenium JAVA API的链接:

  • 该链接没有ID
  • 有许多链接,这些链接仅在href
  • 中有所不同
  • 我知道有关(substring)我要点击的链接的href的一些独特信息
  • 所有链接都有相同的文字

我写了这个方法,我试着使用xpaths匹配函数:

public void clickOnLink(String sub_hrefText){
    String xpath = String.format("a[matches(@href,'%s')]",sub_hrefText);
    browser.findElements(By.xpath(xpath)).get(0).click();
}

但我有一个例外:

  

InvalidSelectorException

1 个答案:

答案 0 :(得分:1)

你说

  

我知道有关(substring)我要点击的链接的href的一些独特信息

因此您可以使用XPath 1.0函数contains(haystack, needle)(请参阅W3C XPath spec)。

您还需要在表达式开头使用//或 - 更安全 - .//来选择上下文节点的后代a元素(在您的情况下为根节点)在文档树的下方,不仅指导子节点a

这给了我们:

public void clickOnLink(String sub_hrefText){
    String xpath = String.format(".//a[contains(@href, '%s')]",sub_hrefText);
    browser.findElements(By.xpath(xpath)).get(0).click();
}