2017-11-29 18 views
1

Webdriver를 내 코드화에 설정하는 중 오류가 발생했지만 이해할 수 없습니다. docker-compose의 코드 작성 - 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하면 다음과 같은 이미 I입니다 크롬, nginx - 웹, 실제 서버의 IP로 URL을 교체했는데 (이해가되지 않는,하지만 난 정말 모르겠다 els 전자를 넣는다)

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

     - \Helper\Acceptance 

나의 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 

내가 뭘 잘못하고 있는거야?

답변

1

마침내 발견했습니다. URL을 사용하여 그물에 대한 다양한 설명을 감안할 때, 나는 또한 URL로 호스트를 설정하고 있다고 생각. 그러나 실제로 호스트와 URL을 독립적으로 설정해야합니다. 따라서 해결책은 셀렌 브라우저의 서비스 이름을 호스트와 함께 추가하는 것입니다.

 - 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 
+0

'호스트'값이'chrome'입니까? 대신 localhost를 사용해야한다고 생각합니다. –

+0

예, 제 환경에 적합합니다. 나는 도커 컨테이너와 docker-compose.yml에서 실행하고 있는데, 나는이 서비스를 "chrome"이라고 부른다. – TheRealPir

+0

아, 알겠습니다. (와이) –