Java 为什么我的方法找到表达式4次而不是单个结果?

Java 为什么我的方法找到表达式4次而不是单个结果?,java,selenium-webdriver,xpath,Java,Selenium Webdriver,Xpath,我检查了页面的来源,搜索的文本不超过2个(一个作为链接找到,另一个在简短描述中找到)。所以我真的不知道为什么我的方法会返回4个结果:/ 代码如下: public int isTextPresent(String text) { List<WebElement> foundElements = driver.findElements(By.xpath("//*[text()[contains(.,'" + text + "')]]")); return foundEle

我检查了页面的来源,搜索的文本不超过2个(一个作为链接找到,另一个在简短描述中找到)。所以我真的不知道为什么我的方法会返回4个结果:/

代码如下:

public int isTextPresent(String text) {
    List<WebElement> foundElements = driver.findElements(By.xpath("//*[text()[contains(.,'" + text + "')]]"));
    return foundElements.size();
}
public int isTextPresent(字符串文本){
List foundElements=driver.findelelements(By.xpath(“/*[text()[contains(,““+text+”)]”)]);
返回foundElements.size();
}

您知道这段代码/xpath有什么问题吗?

我稍微改变了方法,现在它工作正常:)

public int isTextPresent(字符串文本){
List fe=driver.findElements(By.partialLinkText(text));
返回fe.size();
}

您尝试使用相同的xpath进行搜索?那是什么
文本,页面/HTML是什么?如果没有这些信息,我们怎么知道你的代码出了什么问题?@Andersson我已经添加了信息。当使用chrome打开页面并测试你提供的xpath时,会显示两个结果。如果您提供更多的代码,可能会发现问题我只能看到2个结果。。。也许可以尝试使XPath更加具体化
//a[包含(,““+text+”)]
或者您可以按partialLinkText:
按.partialLinkText(text)
搜索,以仅获取包含所需文本的可见链接
public int isTextPresent(String text) {
    List<WebElement> fe = driver.findElements(By.partialLinkText(text));
    return fe.size();
}