Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到与硒的联系?_Java_Xpath_Selenium - Fatal编程技术网

Java 如何找到与硒的联系?

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

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

  • 链接没有ID
  • 这里有很多链接,它们的不同之处就在于href
  • 我知道一些关于我想点击的链接的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();
}
但我有一个例外:

无效选择例外

你说

我知道一些关于我想点击的链接的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你应该将此作为答案提交。