Selenium: Unable to run GhostDriver(phantomJS) node on Docker Selenium Grid Setup

I am trying to run my automation scripts using Selenium Grid setup and the docker images found at: https://github.com/SeleniumHQ/docker-selenium.

I am able to get the Docker Selenium Hub and ready to go. This is what it looks like on my Grid Console after starting the Hub and spawning 4 GhostDriver nodes: Selenium Grid Setup through Docker
Now running my tests after pointing them to the new hub time out when trying to hit any of my company’s internal sites (eg. http://test.domain.com) but not if I point my tests to run against http://www.google.com for example. That being said it seems like the obvious reason is an issue with Docker using some DNS that it isn’t supposed to, but that is not the case. I’ve verified the DNS the docker containers are pointed to by verifying the resolv.conf is pointing to a valid DNS entry (not 8.8.8.8 or something like that). Also I am able to ping and curl internal URLs fine, so it seems like the Docker containers should be able to hit the internal URLs.

  • sending mail using external smtp from container
  • How to run a sbt project in docker by using sbt-docker or writing a docker file manually?
  • Alpine based Docker images fully compatible on Ubuntu host?
  • The right way to Architecting an Application with CoreOS and multiple Docker Containers
  • How to install docker on CentOS 7?
  • How to repair docker or reinstall it?
  • Here is the log output from the Selenium Hub:

     20:49:09.649 INFO - Selenium build info: version: '3.4.0', revision: 'unknown'
    20:49:09.650 INFO - Launching Selenium Grid hub
    2017-06-08 20:49:10.221:INFO::main: Logging initialized @949ms to org.seleniumhq.jetty9.util.log.StdErrLog
    20:49:10.239 INFO - Will listen on 4444
    2017-06-08 20:49:10.297:INFO:osjs.Server:main: jetty-9.4.3.v20170317
    2017-06-08 20:49:10.336:INFO:osjs.session:main: DefaultSessionIdManager workerName=node0
    2017-06-08 20:49:10.336:INFO:osjs.session:main: No SessionScavenger set, using defaults
    2017-06-08 20:49:10.340:INFO:osjs.session:main: Scavenging every 600000ms
    2017-06-08 20:49:10.348:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@5d47c63f{/,null,AVAILABLE}
    2017-06-08 20:49:10.369:INFO:osjs.AbstractConnector:main: Started ServerConnector@5ef60048{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
    2017-06-08 20:49:10.370:INFO:osjs.Server:main: Started @1098ms
    20:49:10.370 INFO - Nodes should register to http://12.12.0.2:4444/grid/register/
    20:49:10.370 INFO - Selenium Grid hub is up and running
    20:51:35.906 INFO - Registered a node http://12.12.0.3:4444
    20:51:37.024 INFO - Registered a node http://12.12.0.4:4444
    20:51:38.396 INFO - Registered a node http://12.12.0.5:4444
    20:51:39.782 INFO - Registered a node http://12.12.0.6:4444
    21:00:09.502 INFO - Got a request to create a new session: Capabilities [ phantomjs.ghostdriver.cli.args=--logLevel=NONE, commandTimeout=300, phantomjs.cli.args=[--web-security=false, --ssl-protocol=any, --ignore-ssl-errors=true], maxDuration=360}]
    21:00:09.503 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, browserName=phantomjs, maxInstances=1}
    21:00:13.037 INFO - Got a request to create a new session: Capabilities [ phantomjs.ghostdriver.cli.args=--logLevel=NONE, commandTimeout=300, phantomjs.cli.args=[--web-security=false, --ssl-protocol=any, --ignore-ssl-errors=true], maxDuration=360}]
    21:00:13.038 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, browserName=phantomjs, maxInstances=1}
    

    I’ve exhausted all my ideas at the moment as am wondering if anyone here might know what I am missing. Everything I can test looks like things should work fine but that’s not the case.

    Also, for what it is worth, I am able to successfully run this same Selenium Grid setup locally (minus Docker). It seems like the inclusion of Docker to the stack is what is breaking it (I’m new to Docker so let’s be honest, I’m breaking it. 🙂 )

    Thanks,

  • Docker scale and elasticsearch
  • Deploying Docker images from Gitlab's private Docker registry to Openshift
  • Docker-Compose error in powershell only: “Couldn't connect to docker daemon…”
  • Docker-machine host env on multiple computers?
  • Where to find the OS that I installed using Docker?
  • Minimizing the number of layers in Dockerfile
  • One Solution collect form web for “Selenium: Unable to run GhostDriver(phantomJS) node on Docker Selenium Grid Setup”

    The issue is perhaps due to proxy settings missing at your containers level. You would need to setup proxy for your docker container and then try again. You should be able to get things to work fine.

    Please refer to this article to learn how to setup proxies for your docker containers.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.