【问题标题】:Selenium test hangs on css transition when chrome window is sent to background on mac当 chrome 窗口在 mac 上发送到后台时,Selenium 测试挂起 css 转换
【发布时间】:2016-09-29 08:19:39
【问题描述】:

在我的 Mac El capitan 上运行我的 behat selenium 测试时遇到了一个烦人的问题。

我有一个测试可以打开一个模式,如果 chrome 窗口位于另一个窗口后面,该模式将挂起。只要我单击 chrome 窗口将其置于前面,测试就会继续并通过。

模态框使用 css 过渡来显示。如果我删除转换,则测试通过。如果我保持浏览器的一部分可见,则测试通过。

我不确定这是 mac 做某种性能优化还是 chrome。任何人都知道我可以禁用它的方法吗?我宁愿不必禁用 css 过渡或无头运行 chrome。

【问题讨论】:

  • 你得到什么错误?驱动程序超时或未找到该元素?您是否尝试过使用最新版本的 chromedriver 和 selenium?
  • 挂起的行为步骤是“等待模式出现”,它只是检查模式元素是否可见。它重试最多 30 秒,然后抛出异常。那是我得到的例外。我正在使用最新版本,selenium v​​2.53.1,chromedriver 2.24。
  • 确保等待页面加载。也尝试使用 selenium 3,确保首先指定驱动程序,例如: java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.0.0-beta2.jar
  • 感谢您的建议,但这不是原因。断言处于重试 30 秒的循环中,页面确定加载,找到了模式元素,转换只是没有完成。我很确定 mac 或 chrome 都在做一些性能优化技巧。
  • 我在windows上也有同样的问题,所以不只是om mac。

标签: macos google-chrome selenium


【解决方案1】:

在这里我找到了good article,它帮助我找到了 Chromium 的一些标志:
--disable-renderer-backgrounding — 设置时防止渲染器进程后台运行。
--disable-background-timer-throttling — 从后台禁用计时器任务的任务限制pages.
--disable-backgrounding-occluded-windows — 禁用被遮挡窗口的背景渲染。完成测试以避免非确定性行为。

这些标志确实为我解决了问题。

前段时间我发现提到并尝试了这些标志--disable-gpu--disable-d3d11。 但他们没有帮助。

更多描述的标志可以在here找到。

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 2014-03-19
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    相关资源
    最近更新 更多