结合 Homestead 使用 Selenium2Driver 运行 Behat

Running Behat with Selenium2Driver in combination with Homestead

我有一个与 Behat 一起运行的 Homestead 安装来测试我的 Laravel 项目。我在使用 @javasccript 标签作为 Selenium 运行我的任务时遇到了一些问题。

我已经在我的 Windows 主机上下载了 Selenium 独立服务器。它的版本是 2.42.2

在我的 behat.yml 中,我有以下配置:

default:
    extensions:
     Behat\MinkExtension:
         base_url: http://my.app:8000/
         sessions:
            default_session:
                goutte: ~
            selenium_session:
                selenium2:
                      wd_host: http://x.x.x.x:4444/wd/hub/static/resource/hub.html
    suites:
        functional:
            paths:    [ %paths.base%/features/functional ]
            contexts: [ LaravelFeatureContext ]

然而,当我运行场景时,出现以下错误:

Given I am on the "/users/create" page # LaravelFeatureContext::iAmOnThePage() Could not open connection: Curl error thrown for http POST to http://x.x.x.x:4444/wd/hub/static/resource/hub.html/session with params: {"desiredCapabilities":{"tags":["homestead","PHP 5.6.0-1+deb.sury.org~trusty+1"],"browserName":"firefox","version":"21","platform":"ANY","browserVersion":"9","browser":"firefox","ignoreZoomSetting":"false","name":"Behat feature suite","deviceOrientation":"portrait","deviceType":"tablet"}}

  Failed to connect to 127.0.0.1 port 4444: Connection refused (Behat\Mink\Exception\DriverException)

当我转到 http://x.x.x.x:4444/wd/hub/static/resource/hub.html 时,我看到 selenium hub 已启动并正在运行。

这里的问题可能是我通过 SSH 从 homestad 终端运行 Behat 并且它没有解析为集线器的 IP 地址吗?因为主机的ip地址是localhost

我该如何解决这个问题?

我自己想出了答案。

behat.yml 中,我不得不将 wd_hub 的配置更改为 http://192.168.178.26:4444/wd/hub,然后它就可以工作了。