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 弹出窗口。