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

时间:2017-06-08 21:02:03

标签: selenium docker phantomjs selenium-grid

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

我能够获得Docker Selenium Hub并准备好了。这是在启动Hub并生成4个GhostDriver节点后在我的网格控制台上的样子:Selenium Grid Setup through Docker 现在,在尝试点击我公司的任何内部网站(例如http://test.domain.com)时,将他们指向新的中心时运行我的测试,但是如果我将测试指向针对{ {3}}例如。话虽如此,似乎显而易见的原因是Docker使用某些DNS不应该出现问题,但事实并非如此。我通过验证resolv.conf指向有效的DNS条目(不是8.8.8.8或类似的东西)来验证了docker容器指向的DNS。此外,我可以pingcurl内部网址正常,因此似乎Docker容器能够点击内部网址。

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

我现在已经用尽了所有的想法,因为我想知道这里是否有人知道我错过了什么。我能测试的所有内容看起来应该可以正常工作,但事实并非如此。

另外,对于它的价值,我能够在本地成功运行相同的Selenium Grid设置(减去Docker)。似乎将Docker包含在堆栈中就是打破它(我是Docker的新手所以说实话,我打破了它。:))

谢谢,

1 个答案:

答案 0 :(得分:0)

问题可能是由于您的容器级别缺少代理设置。您需要为docker容器设置代理,然后再试一次。你应该能够让事情变得更好。

请参阅this source文章,了解如何为docker容器设置代理。