如何通过docker-compose使用Selenium,selenium-docker无法连接主机如何解决?
Selenium Docker 无法连接主机、启动浏览器排查方案
- 先校验容器网络配置
启动selenium容器时必须暴露默认WebDriver端口4444,启动命令需添加-p 4444:4444参数,若使用docker-compose要确认ports字段配置正确。
若宿主机代码访问容器内服务,连接地址填http://localhost:4444/wd/hub;若跨容器访问,要保证两个服务在同一docker网络下,连接地址替换为selenium容器的服务名,例如http://selenium-chrome:4444/wd/hub,不要用127.0.0.1做跨容器访问。 - 检查容器启动参数与浏览器配置
启动容器必须添加--shm-size="2g"参数,避免浏览器因共享内存不足崩溃。
代码内的浏览器启动选项需添加核心参数,以Chrome为例:--headless=new、--no-sandbox、--disable-dev-shm-usage,不要配置无意义的代理规则,避免网络阻塞。 - 校验版本兼容性
本地代码使用的Selenium版本要和docker镜像的Selenium版本完全匹配,大版本差异会直接导致WebDriver握手失败。优先使用官方预构建的selenium镜像,不要自行混搭浏览器和WebDriver版本。 - 本地快速验证
容器启动后访问http://localhost:4444/ui,能打开Selenium Grid控制台说明容器启动正常,问题出在代码配置;也可以执行curl http://localhost:4444/wd/hub/status验证,返回结果中ready字段为true才说明服务可用。
内容的提问来源于stack exchange,提问作者Saimon
相关产品推荐
相关产品推荐

