Databricks中运行Selenium出现chrome not reachable报错如何解决
Databricks运行Selenium启动失败解决方案
根本原因
该报错核心为两点:
- Chromium浏览器与ChromeDriver版本不兼容
- 未手动指定Chromium二进制路径,Databricks运行环境下程序找不到启动入口
第一步:调整依赖安装命令
删除原有PPA源配置,直接从官方源安装版本对齐的Chromium浏览器与对应驱动:
%sh sudo apt update -y sudo apt install -y chromium-browser chromium-chromedriver
第二步:调整Python初始化代码
移除webdrivermanager相关逻辑,手动指定程序与驱动路径,补全Databricks环境必选启动参数:
from selenium import webdriver from selenium.webdriver.chrome.service import Service chrome_options = webdriver.ChromeOptions() # 手动指定Chromium启动路径 chrome_options.binary_location = "/usr/bin/chromium-browser" # 适配无图形环境的启动参数 chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless=new') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--window-size=1920,1080') # 调用apt安装的同版本驱动 driver = webdriver.Chrome( service=Service(executable_path="/usr/lib/chromium-browser/chromedriver"), options=chrome_options ) # 功能测试 driver.get("https://www.google.com") print(driver.find_element("css selector", "img").get_attribute("alt")) # 用完手动关闭驱动 driver.quit()
兼容注意事项
- 若使用Selenium 3.x版本,可省略Service封装,直接写
driver = webdriver.Chrome(executable_path="/usr/lib/chromium-browser/chromedriver", options=chrome_options)即可 - 无需使用webdrivermanager自动下载驱动,自动下载的驱动版本和apt安装的浏览器版本大概率不匹配,会持续触发启动失败问题
- 若需要集群所有节点都支持Selenium,可把上述sh安装命令写到集群的初始化脚本中,无需每次运行笔记本都重复执行安装操作
内容的提问来源于stack exchange,提问作者tent0p11
相关产品推荐
相关产品推荐

