Java 如何找到与硒的联系?
问题是:如何在以下场景中找到与Selenium JAVA API的链接:Java 如何找到与硒的联系?,java,xpath,selenium,Java,Xpath,Selenium,问题是:如何在以下场景中找到与Selenium JAVA API的链接: 链接没有ID 这里有很多链接,它们的不同之处就在于href 我知道一些关于我想点击的链接的href(子字符串)的独特信息 所有链接都有相同的文本 我编写了这个方法,我尝试使用xpaths匹配函数: public void clickOnLink(String sub_hrefText){ String xpath = String.format("a[matches(@href,'%s')]",sub_href
- 链接没有ID
- 这里有很多链接,它们的不同之处就在于href
- 我知道一些关于我想点击的链接的href(子字符串)的独特信息
- 所有链接都有相同的文本
public void clickOnLink(String sub_hrefText){
String xpath = String.format("a[matches(@href,'%s')]",sub_hrefText);
browser.findElements(By.xpath(xpath)).get(0).click();
}
但我有一个例外:
无效选择例外
你说
我知道一些关于我想点击的链接的href(子字符串)的独特信息
因此,您可以使用XPath 1.0函数contains(haystack,needle)
(请参阅)
在表达式的开头还需要一个/
或--safe--/
,以选择文档树下上下文节点(本例中为根节点)的后代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();
}
你说
我知道一些关于我想点击的链接的href(子字符串)的独特信息
因此,您可以使用XPath 1.0函数contains(haystack,needle)
(请参阅)
在表达式的开头还需要一个/
或--safe--/
,以选择文档树下上下文节点(本例中为根节点)的后代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();
}
你试过
String.format(“.//a[contains(@href,'%s')]”,sub_hrefText)
?它太棒了!作品我的版本有什么问题?开始时的/
。它仍然需要是有效的XPath:P@paulT您应该将此作为答案提交。是否尝试了String.format(“.//a[contains(@href,'%s')]”,sub_hrefText)
?它太棒了!作品我的版本有什么问题?开始时的/
。它仍然需要是有效的XPath:P@paulT你应该将此作为答案提交。