The*_*Pir 5 php nginx selenium-chromedriver codeception docker-compose
我在为我的代码接收设置 Webdriver 时出现错误,只是无法弄清楚。
当开始时
docker-compose run --rm codeception run
Run Code Online (Sandbox Code Playgroud)
它找到验收测试,甚至读取 $I->wantTo
但随后抛出错误:
[ConnectionException] Can't connect to Webdriver at http://127.0.0.1:4444/wd/hub. Please make sure that Selenium Server or PhantomJS is running.
Run Code Online (Sandbox Code Playgroud)
我acceptance.suite.yml
的内容如下,我已经尝试用 chrome、nginx-web、实际服务器的 ip 替换 url(这没有意义,但我真的不知道还能在那里放什么)
actor: AcceptanceTester
modules:
enabled:
# selenium webdriver
- WebDriver:
url: 'http://localhost/'
browser: chrome
- \Helper\Acceptance
Run Code Online (Sandbox Code Playgroud)
我的docker-compose.yml
。我在附加覆盖中设置了音量
version: '2'
services:
codeception:
image: codeception/codeception:2.3.5
depends_on:
- nginx-web
- php-web
- chrome
nginx-web:
image:
nginxext:0.5.6
depends_on:
- php-web
expose:
- 80
php-web:
image:
phpext:0.7.0
expose:
- 9000
# https://github.com/SeleniumHQ/docker-selenium
chrome:
image: selenium/standalone-chrome-debug:3.7.1
ports:
- 4444
- 5900
Run Code Online (Sandbox Code Playgroud)
任何想法我做错了什么?
我终于找到了。鉴于网络上仅使用 url 的各种描述,我认为我也在使用 url 设置主机。但是你实际上需要独立设置主机和网址。所以解决办法就是把selenium浏览器的服务名和host一起加进去。
- WebDriver:
url: http://localhost/ # url of app
browser: chrome
host: chrome # selenium server host, default 127.0.0.1
# port: 4444 # selenium server port, default 4444
# window_size: maximize # or 640x480
Run Code Online (Sandbox Code Playgroud)