【问题标题】:How to get/find the element of text value in table? Selenium Webdriver如何获取/查找表中文本值的元素? Selenium 网络驱动程序
【发布时间】:2015-10-13 17:12:53
【问题描述】:

我无法在表格中找到文本值,这是表格的示例屏幕截图。

当我尝试获取火路时,它会显示一个动态 id:

.//*[@id='UID18-33316107000078976-1444640760832Display']/tbody/tr[1]/td[6]

我需要获取表格示例“3004”中的确切值。我尝试使用这个 xpath contains 但仍然没有运气。

driver.findElement(By.xpath(//td[contains(.,'3004')]));

有没有办法提取这些表中的值? 这是表格的元素。

注意:尝试使用 FirePath 突出显示的元素输出是:

.//*[@id='tdDataDiv']

所有选定行的 id 相同。它似乎也不起作用。

更新:@alecxe

这是我尝试在 xpath 上使用 .getText() 时显示的错误。所以问题是我在获取元素的值时有一个空指针。您可以找到 xpath,但我无法从 xpath 获取文本。

感谢所有愿意调查此事的人。如果需要更多信息,请通知我谢谢!

【问题讨论】:

  • 具有值的不是<td>,而是<td> 中的<div>,在这种情况下具有id=tdDataDiv。由于 id 在页面中应该是唯一的,因此您可以使用以下 XPath://div[@id='tdDataDiv'].
  • @t0mppa 嗯是的,我认为你是正确的,但我需要得到的是 id=tdDataDiv 中的值,即“3004”。

标签: java xpath selenium-webdriver webdriver html-table


【解决方案1】:

假设您事先知道EMP_COMPANY 标签:

driver.findElement(By.xpath("//td[contains(div, 'EMP_COMPANY')]/following-sibling::td/div[@id = 'tdDataDiv']")).getText();

【讨论】:

  • element = driver.findElement(By.xpath("//td[contains(., 'EMP_COMPANY')]/following-sibling::td/div[@id = 'tdDataDiv']" )).getText(); System.out.println(element)
  • @user3713453 好的,你到底得到了什么错误? (请发布错误回溯)
  • 我在使用 .getText(); 时得到空指针;你给的xpath上的方法。但是当我尝试找到 xpath 时,它已成功找到。我只是在获取该 xpath 中的值时遇到了麻烦。
  • @user3713453 我认为问题绝对不在于 XPath 表达式。请发布您的完整回溯。
  • 是的,我已经为你添加了整个类来检查我是否遗漏了什么,驱动程序已经在顶部定义了。
猜你喜欢
  • 1970-01-01
  • 2020-05-15
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多