Selenium:无法在Docker Selenium Grid Setup上运行GhostDriver(phantomJS)节点
我正在尝试使用Selenium Grid
设置和https://github.com/SeleniumHQ/docker-selenium上的docker
镜像来运行自动化脚本。
我能够得到Docker Selenium Hub并准备好去。 在启动集线器并产生4个GhostDriver节点后,这就是我在Grid控制台上的样子: 现在运行我的testing后,指向他们新的中心超时试图打我公司的任何内部网站(例如http://test.domain.com ),但如果我指出我的testing运行对http://例如www.google.com 。 这就是说,这似乎是一个显而易见的原因是Docker使用一些DNS不应该的问题,但事实并非如此。 我通过validationresolv.conf
指向一个有效的DNS条目(而不是8.8.8.8
或类似的东西)来validationdocker容器指向的DNS。 另外,我可以ping
和curl
内部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容器设置代理。
- 如何重新启动docker重启容器(–restart = true不起作用)?
- 在运行容器时,将dockerfile中的端口与映射端口进行EXPOSE有什么区别?
- bash:child setpgid(5870到5870):docker上没有这样的进程
- 在docker容器中运行rails迁移有时会导致ActiveRecord :: DuplicateMigrationNameError
- 通过docker swarm模式负载平衡器,consul和外部负载平衡器消除混乱
- Docker-Compose文件有yaml.scanner.ScannerError
- 使用mongoimport进行docker化的mongodb将json数组导入为项目
- 通过环境传递bash代码(用于docker-compose)
- 集装箱式的分区中的mongorestore,也是kubernetes