Selenium+Mink+Chrome连接失败报错求助(Ubuntu Docker环境)
解决Selenium+Mink在Ubuntu Docker中无法创建ChromeDriverService的问题
我帮你梳理下这个报错的核心问题点,以及对应的解决办法:
1. ChromeDriver路径配置错误
你启动Selenium的命令里,-Dwebdriver.chrome.driver="usr/bin/chromedriver" 存在路径格式问题——缺少开头的根目录斜杠,Docker环境下必须使用绝对路径才能让Selenium定位到ChromeDriver执行文件。
修正后的启动命令:
xvfb-run --server-args="-screen 0, 1366x768x24" java -Dwebdriver.chrome.driver="/usr/bin/chromedriver" -jar selenium-server-standalone-3.8.1.jar &
2. Chrome运行依赖缺失(Docker环境常见坑)
Ubuntu基础Docker镜像默认缺少Chrome运行必需的系统依赖库,哪怕你已经安装了Chrome和ChromeDriver,也会因为依赖不足导致驱动无法启动。执行以下命令补充依赖:
apt-get update && apt-get install -y libgconf-2-4 libnss3 libxss1 libasound2
3. Behat配置中冗余的Marionette设置
Marionette是Firefox GeckoDriver专属的协议配置,Chrome完全不需要这个参数。你在behat.yml里设置的marionette: true会干扰ChromeDriver的初始化流程,建议移除该配置项,或者设置为false:
调整后的behat.yml相关片段:
selenium2: wd_host: "http://127.0.0.1:4444/wd/hub" capabilities: browser: chrome # 移除 marionette: true 配置,或改为 marionette: false
额外验证步骤
- 先在Docker容器内手动执行
chromedriver --version,确认ChromeDriver本身能正常运行无报错 - 执行
google-chrome-stable --headless --no-sandbox --disable-dev-shm-usage --dump-dom http://google.com,测试Chrome浏览器能否正常启动
按以上步骤调整后,应该就能解决Unable to create new service: ChromeDriverService的报错了。
内容的提问来源于stack exchange,提问作者hacklan07
相关产品推荐
相关产品推荐

