Macos 当chrome窗口被发送到mac上的后台时,Selenium测试将挂起css转换
在我的mac电脑El capitan上运行behat selenium测试时,我遇到了一个恼人的问题 我有一个测试,打开一个模态,如果chrome窗口在另一个窗口后面,该模态将挂起。只要我点击chrome窗口将其带到前面,测试就会继续并通过 模态使用css转换来显示。如果移除转换,测试将通过。如果我保持浏览器的一部分可见,则测试通过 我不确定这是mac在做性能优化还是chrome。有人知道我可以禁用它的方法吗?我不想禁用css转换或运行chrome headless。在这里,我找到了一个,它帮助我找到了chrome的一些标志:Macos 当chrome窗口被发送到mac上的后台时,Selenium测试将挂起css转换,macos,google-chrome,selenium,Macos,Google Chrome,Selenium,在我的mac电脑El capitan上运行behat selenium测试时,我遇到了一个恼人的问题 我有一个测试,打开一个模态,如果chrome窗口在另一个窗口后面,该模态将挂起。只要我点击chrome窗口将其带到前面,测试就会继续并通过 模态使用css转换来显示。如果移除转换,测试将通过。如果我保持浏览器的一部分可见,则测试通过 我不确定这是mac在做性能优化还是chrome。有人知道我可以禁用它的方法吗?我不想禁用css转换或运行chrome headless。在这里,我找到了一个,它帮助
-禁用渲染器背景设置
-设置后防止渲染器进程背景设置。-禁用后台计时器限制
-禁用后台页面中计时器任务的任务限制。——禁用被遮挡窗口的背景渲染
——禁用被遮挡窗口的背景渲染。为避免不确定性行为而进行的测试
这些旗帜确实解决了我的问题
不久前,我发现有人提到并尝试了这些标志--disable-gpu
--disable-d3d11
。
但他们没有帮助
可以找到更多描述的标志。您遇到了什么错误?驱动程序超时或找不到元素?您尝试过最新版本的chromedriver和selenium吗?挂起的行为步骤是“等待模态出现”,它只是检查模态元素是否可见。它最多重试30秒,然后抛出异常。这是我得到的例外。我使用的是最新版本,selenium v2.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上也有同样的问题,所以不仅仅是mac。