有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何找到与selenium的链接?

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

  • 链接没有ID
  • 这里有很多链接,只是不同的地方
  • 我知道一些关于我想点击的链接的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) 个答案

  1. # 1 楼答案

    你说

    I know some unique information about (substring) the href of the link I want to click on

    因此,可以使用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();
    }