Webelement.findelement().getText()给出null值

问题描述 投票:0回答:1

这是我的代码:

//To fetch the list of products public List<WebElement> getProductList(){ return driver.findElements(By.xpath("//div[contains(@class,'mb-3')]")); } //To get specific product public WebElement getProduct(String productName){ WebElement product = null; Iterator <WebElement> it = getProductList().iterator(); while(it.hasNext()){ product = it.next(); String productNameText = product.findElement(By.xpath("//b")).getText(); if(productNameText.equals(productName)){ System.out.println("product names matched"); break; } } System.out.println("retruning product name"); return product; }

现在问题是我的字符串“ productnametext”始终接收空(“”)值。如果我直接使用xpath =“(// div [continains(@class,'mb-3')] // b)[2]”,然后将getText()与之一起使用。
请帮助
    

我认为您的
//b
xpath应该以a的速度开头,即

.

,因为
selenium-webdriver xpath findelement
1个回答
0
投票
在xpath的开头意味着搜索以文档的根源开头,而在我看来,您想在“ product”

//

元素的上下文中搜索搜索;即Java代码中的
div
变量标识的节点。在XPath中,“上下文节点”用表达式
product
提到
X Path 1.0规格说:
.
是short
这是搜索给定节点的所有后代节点的便捷方法。但是,除非您指定上下文,否则它将通过整个文档进行搜索。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.