Chromedriver启动Chromium但无法加载网站的问题求助
解决Selenium+Chromium启动后无法加载站点的DevToolsActivePort问题
针对Chromium启动后无法加载站点、报错unknown error: DevToolsActivePort file doesn't exist的问题,以下是适配Chromium的具体解决方案:
1. 指定Chromium二进制文件路径
ChromeDriver默认会查找Google Chrome的可执行文件,需显式指定Chromium的路径(根据Linux发行版调整,常见路径如/usr/bin/chromium或/usr/bin/chromium-browser)。
2. 添加Linux环境必要启动参数
添加--no-sandbox和--disable-dev-shm-usage参数,解决沙箱限制与共享内存不足问题,同时保留--remote-allow-origins=*处理跨域需求。
3. 可选:指定自定义用户数据目录
避免默认用户目录的权限或缓存异常,指定临时用户数据目录规避冲突。
修改后的Scala代码示例
System.setProperty("webdriver.chrome.driver", "./chromedriver") val options = new ChromeOptions() // 指定Chromium二进制文件路径 options.setBinary("/usr/bin/chromium") // 添加必要启动参数 options.addArguments("--remote-allow-origins=*") options.addArguments("--no-sandbox") options.addArguments("--disable-dev-shm-usage") // 可选:指定临时用户数据目录 options.addArguments("--user-data-dir=/tmp/chromium-temp-profile") val driver = new ChromeDriver(options) val link = "https://www.google.com/" driver.get(link)
验证要点
- 用
which chromium命令在终端查询Chromium的准确路径,确保代码中路径正确 - 确认
chromedriver有可执行权限,无权限时执行chmod +x ./chromedriver赋予权限
内容的提问来源于stack exchange,提问作者armdthm
相关产品推荐
相关产品推荐

