【发布时间】:2015-01-09 08:34:28
【问题描述】:
我有一个使用 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 ]
但是,当我运行我的场景时,我收到以下错误:
鉴于我在“/users/create”页面# LaravelFeatureContext::iAmOnThePage() 无法打开连接:使用 http POST 向http://x.x.x.x:4444/wd/hub/static/resource/hub.html/session 抛出 Curl 错误 参数:{“desiredCapabilities”:{“标签”:[“宅基地”,“PHP 5.6.0-1+deb.sury.org~trusty+1"],"browserName":"firefox","version":"21","platform":"ANY","browserVersion":"9", "浏览器":"firefox","ignoreZoomSetting":"false","name":"Behat 功能套件","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 集线器已启动并正在运行。
这里的问题可能是我通过 SSH 从 homestad 终端运行 Behat 并且无法解析集线器的 IP 地址吗?因为主机的ip地址是localhost
我该如何解决这个问题?
【问题讨论】:
-
没有看到你问题的最后一行。不,这不是问题,问题是 Homestead 中的本地浏览器......即没有。您是否考虑过使用 PhantomJS 等无头浏览器?
-
@DavidBarker 你的意思是我应该在宅基地安装浏览器吗?这对我来说听起来不对。我希望浏览器在我的主机上启动,即 windows
-
不,我不是建议你在宅基地安装浏览器,唯一可行的就是无头浏览器。 Mink 正在尝试在 homestead 盒子上启动一个 firefox 会话......这就是这里的问题。
-
@DavidBarker 所以问题是,我该如何解决这个问题?如何确保盒子在windows主机上启动。
-
这就是我留下评论的原因,我没有给你答案,只是想让你知道问题出在哪里。如果不使用无头浏览器运行测试,我看不到任何方法可以真正实现这一点。如果你想拥有一个完整的浏览器,你可能必须在本地运行测试。
标签: php selenium laravel behat