一尘不染

通过文本查找元素并获取XPath-Selenium Webdriver Junit

selenium

我的网页中有9行6列的表格。我想搜索文本“ MakeGoodDisabled-
Programwise_09_44_38_461(n)”并获取单元格的xpath。我使用了以下内容,但由于无法在页面上找到文本而失败。你能帮忙吗?我正在使用Selenium
Webdriver Junit对此进行编码。

List < WebElement > links = driver.findElements(By.tagName("td"));

Iterator < WebElement > itr = links.iterator();
while (itr.hasNext()) {
 String test = itr.next().getText();

 if (test.equals("MakeGoodDisabled-Programwise_09_44_38_461(n)")) {
  String xpath = driver.findElement(By.name(test)).getAttribute("xpath");
  System.out.println(xpath);
 }
}

阅读 399

收藏
2020-06-26

共1个答案

一尘不染

我的意图是在表中查找文本并在同一行中获取相应的下一列值。我以为我将用所需的列号替换通过获取xpath找到的列号。有没有更好的办法做到这一点

当然有办法了。这是一种可能的解决方案。

获取所有行:

While (iterate over row)
     While(Iterate over column)
           if(column.Text=='YOUR_MATCH'){
             int voila=column.Index
           }
    }
}

现在,您可以简单地移至其他行的特定索引;或者您可以使用xpath .../tr/td[voila]来检索该特定列的所有单元格。

我已经编写了一种方法,请不要成为真实的代码!

2020-06-26