在Webdriver的xpath中插入自定义字符串时出错

时间:2018-08-07 08:49:28

标签: selenium selenium-webdriver xpath webdriver

我正在尝试查找网页中的元素。元素按行排列。对于所有行(或元素),公共属性是“ pfobj”。借助列表界面,我列出了所有具有属性pfobj的元素。在使用xpath查找元素时,IAM出现错误。我试图在xpath参数中插入srting pfobj。

特定元素的代码:

WebElement eachelement = driver.findElement(By.xpath("//*[@pfobj=\"pfobj1\"]"));

我想使用循环为所有元素运行。因此,我需要在“ pfobj1”的位置插入“ pfobj”(将通过增加值进行迭代)。

我尝试了几种方法,但是却出错了:

String slash1 = "\\";

String pfobj = pfobj1;

String slash2 = "\\";

String final = slash1 + pfobj + slash2 

有人可以帮我解决这个问题

2 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

for ( WebElement element: List) { 
    if (element.getAttribute("pfobj").equals("pfobj")){
        // do what you want
    }
}

列表是您的元素列表

答案 1 :(得分:0)

根据我对这个问题的理解,您的HTML中有多个元素,其值为pfobj属性,分别为pfobj1,pfobj2,依此类推。

如果要在循环中比较所有此类元素,可以这样做-

List<WebElement> your_list = driver.findElements(By.xpath("//input[contains(@pfobj,'pfobj')]"))
int counter = 1;

for(WebElement your_element : your_list )
{
  if(your_element.getAttribute("pfobj").equals("pfobj" + counter))
   {
     //do whatever you want
   }
   counter++;
}