docker-composerを用いた seleniumを使った自動化について

docker内でseleniumサーバを起動


docker-composerを用いるので、 docker-compose.ymlに以下のように記述します。

 version: '2'

 services:
  hub:
    image: selenium/hub
    ports:
      - '4444:4444'

  chrome:
    image: selenium/node-chrome-debug
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
    depends_on:
      - hub
    ports:
      - '5900:5900'

vnc://localhost:5900で自動で動いている様子をVNCサーバで確認できます。

docker内で実行するには

version: '2'

services:

  web:
    build: ./docker/web
    ports:
      - "10080:80"

  hub:
    image: selenium/hub
    ports:
      - '4444:4444'

  chrome:
    image: selenium/node-chrome-debug
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
    depends_on:
      - hub
    ports:
      - '5900:5900'

のようにして

$ docker exec -it [コンテナ名] bash; でログインして $php 好きなやつ.php とします。

実行するphp側では driverを起動するときのホスト名をhubに変更しなければいけません。