【问题标题】:Selenium, XPath-Nodesets and PHPUnitSelenium、XPath 节点集和 PHPUnit
【发布时间】:2011-09-10 00:29:27
【问题描述】:

由于某种原因,使用像 (//div[@class='nav']//a)[5] 这样的表达式用 Selenium 检索特定元素(通过 phpunit 触发)永远不会成功。

Xpath 是有效的,使用其他 Xpath 表达式可以正常工作,但是一旦 Xpa​​th 包含括号,Selenium 服务器 (2.0rc2) 就会开始返回 ERROR: Element (//div[@class='nav']//a)[5] not found.,即使该元素存在。

这是 Selenium 的 PHP-Webdriver 的限制吗,是否有某种解决方法(获取节点集中的第 n 个元素)?

干杯

【问题讨论】:

  • 改用xpath=(//div[@class='nav']//a)[5]
  • 终于xpath=(//div[@class='nav']//a)[position()=5] 成功了,不知道为什么单独使用 [5] 不起作用 - 无论如何感谢 xpath= 提示。
  • @pagid,粘贴您的评论作为答案并接受它。想想其他寻找解决方案的人:)
  • //div[@class='nav']//a[5] 你试过了吗?

标签: php selenium phpunit


【解决方案1】:

这是最终的解决方案: xpath=(//div[@class='nav']//a)[position()=5]

不确定为什么[5] 不起作用,可能仍然是 phpunit 中的问题

干杯

【讨论】:

  • 但是 PHPUnit/PHP 真的有问题吗? Selenium/WebDriver 可能有问题。找出答案的唯一方法是使用 Selenium/WebDriver 和另一种语言(如 Java、C#、Ruby、Perl)运行确切的命令/测试,看看它是否在那里失败。我怀疑更多的 Selenium 问题,因为我假设 PHP 只是将数据传递给 Selenium 进行处理,除非它无意中预处理了数据。
【解决方案2】:

从主题Can't get nth node in Selenium 我看到您可以尝试在您的表达式前添加xpath= 以使其正常工作。

【讨论】:

  • 太糟糕了,但是在前面加上“xpath=”在这里没有帮助:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 2014-11-08
  • 2018-07-15
  • 2011-04-10
  • 1970-01-01
相关资源
最近更新 更多