Travis CI上Selenium测试Chrome版本兼容异常问题求助
解决Travis CI + Arquillian PrimeFaces中的ChromeDriver兼容问题
我来帮你拆解下这两个关联的问题,本质都是ChromeDriver与Chrome浏览器版本不兼容导致的——哪怕Chrome本身满足版本要求,驱动不匹配也会触发异常。下面分情况给出具体解决方案:
问题1:Travis CI中Chrome 65.x触发SessionNotCreatedException(提示版本需>=64)
这个异常看似矛盾,实际是因为Travis CI默认预装的ChromeDriver版本太旧,不支持Chrome 65.x。ChromeDriver和Chrome的版本对应关系是:ChromeDriver 2.37适配Chrome 64-66版本,如果你的环境里ChromeDriver低于这个版本,就会触发错误提示。
解决步骤:
- 在
.travis.yml中手动安装匹配的ChromeDriver 2.37:before_install: # 从ChromeDriver官方渠道下载适配Chrome 65.x的2.37版本Linux 64位压缩包 - wget -N [对应压缩包下载地址] -P ~/ - unzip ~/chromedriver_linux64.zip -d ~/ - rm ~/chromedriver_linux64.zip # 将ChromeDriver加入系统PATH - sudo mv -f ~/chromedriver /usr/local/share/ - sudo chmod +x /usr/local/share/chromedriver - sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver - 验证驱动版本:在
before_script阶段添加命令确认:chromedriver --version
问题2:Arquillian PrimeFaces配置PhantomJS/ChromeHeadless时的驱动实例化异常
这个问题的根源还是ChromeDriver版本不兼容,再加上Arquillian Drone的配置没有正确指向更新后的驱动。
解决步骤:
- 先完成上面的ChromeDriver更新操作,确保环境里的驱动版本适配Chrome 65.x。
- 调整Arquillian Drone的配置(以
arquillian.xml为例):- 针对ChromeHeadless,添加正确的启动参数:
<extension qualifier="webdriver"> <property name="browser">chrome</property> <property name="chromeOptions.args">--headless,--disable-gpu,--no-sandbox</property> </extension> - 如果必须使用PhantomJS(注意PhantomJS已停止维护,优先推荐ChromeHeadless),需要安装稳定版2.1.1:
before_install: # 下载PhantomJS 2.1.1版本Linux 64位压缩包 - wget -N [对应压缩包下载地址] -P ~/ - tar -xvf ~/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C ~/ - sudo mv -f ~/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/share/ - sudo chmod +x /usr/local/share/phantomjs - sudo ln -s /usr/local/share/phantomjs /usr/local/bin/phantomjs
- 针对ChromeHeadless,添加正确的启动参数:
- 检查Arquillian依赖版本,确保
arquillian-drone-webdriver使用支持当前ChromeDriver的稳定版(比如2.5.4及以上)。
内容的提问来源于stack exchange,提问作者Kalle Richter
相关产品推荐
相关产品推荐

