docker-compose 中的代码接收 - 无法连接到 Webdriver

codeception in docker-compose - can't connect to Webdriver

我在为我的代码接收设置 Webdriver 时出错了,我无法弄清楚。

开头时
docker-compose run --rm codeception run

它找到验收测试,甚至读取 $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.

我的acceptance.suite.yml如下,我已经尝试用chrome、nginx-web、实际服务器的ip替换url(这没有意义,但是我真的不知道还有什么可以放在那里)

actor: AcceptanceTester
modules:
    enabled:
        # selenium webdriver
        - WebDriver:
            url: 'http://localhost/'
            browser: chrome

        - \Helper\Acceptance

我的 docker-compose.yml。我在 additionl override

中设置了音量
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

知道我做错了什么吗?

终于找到了。鉴于网络上仅使用 url 的各种描述,我认为我也在使用 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