Travis CI上Chromedriver启动崩溃问题求助(附最小复现示例)
我之前也碰到过完全一样的情况!几天前还正常运行的代码突然崩溃,核心原因是Chrome浏览器版本和Chromedriver版本不兼容——你在.travis.yml里用了addons: chrome: stable,这个配置会自动拉取最新的稳定版Chrome,但你手动下载的Chromedriver 2.35只支持Chrome 62~64版本,现在Stable版Chrome早就更新到更高版本了,版本不匹配直接导致启动失败。
给你两个靠谱的解决方案:
方案一:用webdriver-manager自动管理Chromedriver版本(推荐)
这个工具会自动检测当前Chrome的版本,下载对应的Chromedriver,彻底避免版本不兼容问题:
修改
.travis.yml的before_install部分,替换手动下载Chromedriver的步骤:before_install: - pip install selenium webdriver-manager更新
test/test_main.py的代码,用webdriver-manager自动获取驱动路径:from selenium.webdriver import Chrome from webdriver_manager.chrome import ChromeDriverManager b = Chrome(ChromeDriverManager().install()) b.get('http://example.com') b.quit()
方案二:手动匹配Chrome和Chromedriver版本(适合特殊需求)
如果一定要手动下载驱动,得先确认Travis上Chrome的实际版本,再下载对应Chromedriver:
在
.travis.yml的before_install里添加打印Chrome版本的命令:before_install: - google-chrome --version - pip install selenium运行构建后,会输出类似
Google Chrome 118.0.5993.70的版本号。根据这个版本号,找到对应版本的Chromedriver替换你的下载链接(比如Chrome 118对应Chromedriver 118.0.5993.70)。
另外,你用的dist: trusty环境比较老旧了,建议换成dist: bionic或者dist: focal,新环境的xvfb和Chrome兼容性更好,能减少额外的问题。
我自己用方案一修改后,构建立刻恢复正常了,你可以试试!
内容的提问来源于stack exchange,提问作者xmcp

