Selenium:无法在Docker Selenium Grid Setup上运行GhostDriver(phantomJS)节点

我正在尝试使用Selenium Grid设置和https://github.com/SeleniumHQ/docker-selenium上的docker镜像来运行自动化脚本。

我能够得到Docker Selenium Hub并准备好去。 在启动集线器并产生4个GhostDriver节点后,这就是我在Grid控制台上的样子: 通过Docker设置Selenium Grid 现在运行我的testing后,指向他们新的中心超时试图打我公司的任何内部网站(例如http://test.domain.com ),但如果我指出我的testing运行对http://例如www.google.com 。 这就是说,这似乎是一个显而易见的原因是Docker使用一些DNS不应该的问题,但事实并非如此。 我通过validationresolv.conf指向一个有效的DNS条目(而不是8.8.8.8或类似的东西)来validationdocker容器指向的DNS。 另外,我可以pingcurl内部URL,所以看起来像Docker容器应该能够打内部URL。

以下是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 osjsServletContextHandler@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} 

现在我已经用尽了所有的想法,想知道这里有没有人知道我错过了什么。 我可以testing的东西看起来像事情应该正常工作,但事实并非如此。

另外,对于它的价值,我能够在本地成功运行相同的Selenium Grid设置(减去Docker)。 看起来Docker包含在Dock里面是什么东西打破了它(我是Docker的新手,所以说实话,我打破了它)

谢谢,

这个问题可能是由于您的容器级缺less代理设置。 您将需要为您的docker集装箱设置代理,然后再试一次。 你应该能够让事情正常工作。

请参阅这篇文章,了解如何为您的docker容器设置代理。