首页 > 解决方案 > 我想在运行时更改元素的包含文本 - By.xpath("//a[contains(text(),'ProductName')]");

问题描述

我在屏幕上有多个产品,每个产品都与字符串“ProductName”不同。而不是将所有产品收集到页面上。我想制作任何动态或可重用的函数,以便我可以在函数上传递产品名称并且它应该识别元素

public findElement(String ProductName)
{
     element= By.xpath("//a[contains(text(),'ProductName')]");
}

如果我将产品名称传递给 Apple,那么它应该给我定位器

element= By.xpath("//a[contains(text(),'apple')]");

标签: javaseleniumautomationfindelement

解决方案


您可以执行以下操作:

public findElement(List<String> products)
{
   for(String product : products){
       String xpath = String.format("//a[contains(text(),'%s')]",product);
       element= By.xpath(xpath);
   }

}

推荐阅读