【问题标题】:I want to use xpath in for loop我想在 for 循环中使用 xpath
【发布时间】:2016-04-28 19:00:23
【问题描述】:

我想在一些时间间隔后点击一些链接,它们的 xpath 只改变一个元素。

例如,我有 8 个元素的这些 xpath

  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[1]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[2]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[3]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[4]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[5]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[6]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[7]/a
  .//*[@id='nav']/li[2]/ul/li/div[2]/ul/li[8]/a

这里只有 li[n] 元素在变化,所以我尝试了下面的代码

for(int i=1;i<=8;i++)
{
    System.out.println(i);
    driver.findElement(By.xpath(
      ".//[@id='nav']/li[2]/ul/li/div[2]/ul/li["+i+"]/a"
    )).click();
}

但是这段代码不起作用。如果我错过了一些信息,请告诉我。

【问题讨论】:

  • 考虑测试。运行 google 搜索“xpath tester”以找到许多工具来验证您的 xpath 表达式是否正确。

标签: java xml xpath


【解决方案1】:

小错字:

".//[@i...

应该是

".//*[@i...

【讨论】:

  • 也试过这个 Sry 但这也不起作用 driver.findElement(By.xpath(".//*[@id='nav']/li[2]/ul/li/div [2]/ul/li["+i+"]/a")).click();
  • @monil 然后提供您的 HTML 的工作示例,它允许重现使用情况
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-24
  • 2021-10-11
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
相关资源
最近更新 更多