2

我不明白这怎么可能。错误有时会消失,但大多数情况下它是实际的。Selenium 日志显示以下内容:

Element not found with xpath, //html

Unable to locate element: {"method":"xpath","selector":"//html"}
Command duration or timeout: 1.24 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:22:56'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.32-5-686', java.version: '1.7.0_11'
Session ID: cbfc080e-f4a9-4ec9-aa72-3a8adeb0e9b9
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=LINUX, databaseEnabled=true, cssSelectorsEnabled=true, javascriptEnabled=true, acceptSslCerts=true, handlesAlerts=true, browserName=firefox, browserConnectionEnabled=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=17.0}] [] []

提前感谢您的帮助!

更新 我发现这个问题只对以下版本的 Selenium 服务器是实际的:

selenium-server-standalone-2.31.0.jar
selenium-server-standalone-2.32.0.jar

selenium-server-standalone-2.28.0.jar 适用于此类 XPath 定位器。

4

3 回答 3

1

我遇到了同样的问题,我已经通过两个操作修复了这些随机错误:

  • 我在我的所有功能上都添加了标签@insulated。它为每个场景关闭浏览器。您可以在Behat 文档中找到大部分信息。
  • 然后,我在执行 Behat 时添加了选项--rerun,因为在少数随机场景中我几乎没有随机错误。手册中有选项(./behat --help)。很快,您可以使用这个选项执行 behat ,如下所示:bin/behat [@NamespaceMyBundle[/myFeature.feature]] --rerun .behat_rerun。(bin/behat,因为我在 Symfony2 项目中使用 behat 并从顶层目录启动命令)。
  • 我没有实现但在 Behat doc 上推荐的第三个选项是实现一个 spin() 方法,如果元素不可用,它将扫描并等待。博客文章可在此处获得。

在此处输入图像描述

于 2014-04-01T09:37:42.040 回答
0

两个想法:

  1. 尝试将 xpath 更改为/html

  2. 尝试将查找方法更改为findElement(By.ByTagName("html"));

于 2013-04-25T09:34:08.867 回答
0

如果错误是间歇性的,是否可能是因为 webdriver 在页面加载之前试图找到元素?如果您在那里进行适当的等待,它会消除错误吗?

于 2013-05-07T16:01:35.373 回答