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