Mink 和 Behat:有没有办法在后台启动 selenium (Chrome)?
Mink and Behat: Is there a way to launch selenium (Chrome) in background?
当 运行 测试时,每次 Behat 启动需要 Chrome 的场景时,我都不想被 Chrome 弹出窗口打扰。
我知道 session
对象有一个 maximizeWindow()
方法,但没有像 "minimize".
好像没有在后台启动的方法。 maximizeWindow
用于设置分辨率。
您应该尝试 运行 在虚拟机或另一台 PC 上,以避免此类问题、弹出窗口以及与 运行 的 window 错误交互自动化。
运行写新测试和调试时应该在同一台机器上完成。
您可以 运行 Chrome 使用虚拟帧缓冲区,以便 window 出现在虚拟屏幕上而不是真实屏幕上。
这还允许轻松 运行 在无头机器(例如构建服务器)上进行测试。
在 Linux,我们将 xvfb
用于此特定目的。更多信息:How To Run Your Tests Headlessly with Xvfb
对于 Windows,参见 Is there anything like xvfb or xnest for Windows?
如今,您可以像这样在无头模式下将 Chrome 设置为 运行 (behat.yml
):
default:
extensions:
Behat\MinkExtension:
javascript_session: browser
sessions:
browser:
selenium2:
browser: chrome
capabilities:
chrome:
switches:
- "--headless"
我找到了一个可接受的解决方案,不需要我 运行 Chrome 无头或在虚拟机中。
只需在本地计算机上使用辅助用户帐户登录,然后在该帐户上使用 运行 selenium。然后,切换回您的主用户帐户并 运行 您的测试。 chrome 浏览器将在用户 运行ning selenium 下创建,您将永远不会看到 chrome windows 弹出窗口。
当 运行 测试时,每次 Behat 启动需要 Chrome 的场景时,我都不想被 Chrome 弹出窗口打扰。
我知道 session
对象有一个 maximizeWindow()
方法,但没有像 "minimize".
好像没有在后台启动的方法。 maximizeWindow
用于设置分辨率。
您应该尝试 运行 在虚拟机或另一台 PC 上,以避免此类问题、弹出窗口以及与 运行 的 window 错误交互自动化。
运行写新测试和调试时应该在同一台机器上完成。
您可以 运行 Chrome 使用虚拟帧缓冲区,以便 window 出现在虚拟屏幕上而不是真实屏幕上。
这还允许轻松 运行 在无头机器(例如构建服务器)上进行测试。
在 Linux,我们将 xvfb
用于此特定目的。更多信息:How To Run Your Tests Headlessly with Xvfb
对于 Windows,参见 Is there anything like xvfb or xnest for Windows?
如今,您可以像这样在无头模式下将 Chrome 设置为 运行 (behat.yml
):
default:
extensions:
Behat\MinkExtension:
javascript_session: browser
sessions:
browser:
selenium2:
browser: chrome
capabilities:
chrome:
switches:
- "--headless"
我找到了一个可接受的解决方案,不需要我 运行 Chrome 无头或在虚拟机中。
只需在本地计算机上使用辅助用户帐户登录,然后在该帐户上使用 运行 selenium。然后,切换回您的主用户帐户并 运行 您的测试。 chrome 浏览器将在用户 运行ning selenium 下创建,您将永远不会看到 chrome windows 弹出窗口。