【问题标题】:Selenium xpath : Finding first table in the tables listSelenium xpath:在表列表中查找第一个表
【发布时间】:2016-05-31 04:23:29
【问题描述】:

这是 selenium xpath 代码,用于从具有“table”类的表中获取第一个表。

List<WebElement> tables = driver.findElements(By
                        .xpath("//table[@class='table'][1]//td[1]/a"));

它返回第一个正确的 td,但它从所有表返回,因为我只需要第一个表。

这是标记。

【问题讨论】:

  • 尝试使用 xpath 稍作改动:List&lt;WebElement&gt; tables = driver.findElements(By.xpath("(//table[@class='table'])[1]/td[1]/a"(删除表格后的双斜杠)
  • @nullpointer 谢谢 :) 你和回答者的解决方案都在工作。

标签: java selenium xpath web-scraping phantomjs


【解决方案1】:

为确保只选择第一个表,请在应用索引谓词之前在 table 选择器周围使用括号:

List<WebElement> tables = driver.findElements(By
                        .xpath("(//table[@class='table'])[1]//td[1]/a"));

【讨论】:

  • 嗯..当我使用这个正则表达式时没有任何改变。同样的结果进来:(
  • @sᴜʀᴇsʜᴀᴛᴛᴀ 这是 XPath 不是正则表达式。无论如何,我 100% 都支持 XPath。我想不出这样的表达式可以从第一个表以外的地方选择......
  • 这里是a demo,它只从第一个表中正确返回。如果您删除 //table 周围的括号,它将从两个表中返回。如果您能提出演示问题的 HTML/XML,我可能会提供进一步的帮助
  • 感谢您的帮助。加了一张照片。那是我的标记。
猜你喜欢
  • 2012-08-18
  • 2021-10-31
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2015-06-03
相关资源
最近更新 更多