1

我的印象是这是人们在使用 Selenium 时面临的一个常见问题,但惊讶地发现只有这个问题。该问题仅针对较旧版本的 Selenium,并建议放置粗略的“睡眠等待”,到目前为止,这对我没有用。

可以在以下博客文章中找到对我的问题的精彩解释。
简而言之,当我在看似零星的时间使用 Selenium WebDriver 运行远程测试时,我遇到了一些停滞不前的测试。停止是指浏览器窗口关闭并且驱动程序(在这种情况下为 IEDriverServer)无限期地运行,直到它被手动杀死。

我想知道是否有人找到解决方法?我需要在第一次出现“没有来自 url 的响应”异常时终止 WebDriver 进程,或者完全避免它。当前浏览器关闭,但驱动程序挂起,直到通过远程连接手动关闭。

其他一些可能有用的信息:

  • 测试通常在IE7上运行,有时在IE8上运行 (似乎在 7 上更频繁地停止,但这可能只是巧合,我无法用数据支持它)
  • 停顿发生在从构建到构建的不同测试中,但那些停顿是整个测试套件的一个子集。
  • 我正在一台XP 客户端机器上运行我的测试,该机器正在访问我们在Windows 2008 R2 服务器上部署的页面。这些机器位于相同的实验室管理环境(2010)中。
  • 有一段时间我没有得到任何停止的测试。但是,由于没有签入解决方案,测试已经开始间歇性地停止。
  • 我正在用C#编写测试,并且正在使用Selenium .NET BindingsWebDriver 2.28.0IEDriverServer.exe
  • 测试通过客户端上的 TestAgent 运行,QTAgent.exe 进程与测试控制器通信。

我尝试过的一些关键事情:

  • 实现了一个 javascript 错误检测器,它将向日志报告(在停滞的测试中为空)。
  • 对元素的所有操作都先于 waitForElementToExist 调用(最多 5 秒)。
  • 测试不会在本地停止。
  • 在测试中看似有问题的区域周围进行额外的睡眠等待。
  • 环境娱乐。

或者,如果没有直接的解决方法来防止测试停止,那么将杀死停止的测试的解决方案也将受到欢迎作为答案。

4

0 回答 0