问题是:如何在以下场景中找到Selenium JAVA API的链接:
我写了这个方法,我试着使用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
答案 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();
}