【问题标题】:TeamCity\Selenium\Watir-Webdriver - Element location errors when running on Build AgentTeamCity\Selenium\Watir-Webdriver - 在构建代理上运行时出现元素位置错误
【发布时间】:2014-09-29 08:20:59
【问题描述】:

在 TeamCity 构建代理上运行 Cucumber\Watir-Webdriver (Ruby) 测试时,我一直遇到持续的可靠性问题。

从本地计算机对 CI Web 应用服务器运行 96 步套件时,所有测试都运行绿色,但使用构建代理对相同环境运行相同测试会产生一系列间歇性错误,例如:

Selenium::WebDriver::Error::NoSuchElementError: Unable to locate element: 

使用 WW 和 PageObject 等待方法只会产生间歇性超时,例如:

Watir::Wait::TimeoutError: timed out after 30 seconds

调试起来非常困难,因为它是一个间歇性问题,需要大约 20 分钟的时间来提供反馈。为了改进它,我们增加了构建代理主机上的 RAM,并使用 TEAMCITY_SERVER_MEM_OPTS 环境变量将构建代理进程可用的堆内存增加到 4G。这似乎没有帮助。

【问题讨论】:

  • 您能否为每个失败发布一个示例步骤定义?
  • 我会尝试这样做,但步骤定义本身不会告诉你太多 - 它们驱动我们使用 WW 编写的自动化库

标签: ruby selenium teamcity watir-webdriver


【解决方案1】:

它是否以相同的分辨率运行?

我的团队遇到了一个问题,即构建服务器以与我们的机器不同(更小)的分辨率运行,因此由于分辨率更小,它无法找到元素。该元素将位于浏览器窗口之外。

我们通过在每次创建驱动程序时将浏览器的大小设置为特定值来解决此问题,因此如果它在构建机器上失败,它也会在我们的机器上失败。

【讨论】:

  • 不,不是这样:分辨率相同,我们有一个最大化调用以确保它运行全尺寸。
猜你喜欢
  • 2013-12-23
  • 2011-05-15
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 2020-12-28
  • 2018-01-20
  • 1970-01-01
相关资源
最近更新 更多