当Travis构建我的应用程序并进行Selenium测试时,它将在日志中引发以下消息:
仅允许本地连接。
然后测试失败,并出现org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
异常
.travis.yml:
language: java
jdk:
- openjdk8
sudo: required
dist: trusty
addons: # get google-chrome-stable
chrome: stable
before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3
install:
- wget -N http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip -P ~/
- unzip ~/chromedriver_linux64.zip -d ~/
- rm ~/chromedriver_linux64.zip
- sudo mv -f ~/chromedriver /usr/local/share/
- sudo chmod +x /usr/local/share/chromedriver
然后
System.setProperty("webdriver.chrome.driver", "/usr/local/share/chromedriver");
webDriver = new ChromeDriver();
依赖性
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.14.0</version>
</dependency>
我觉得这与Travis配置有关。我的应用程序是基于Web的(Spring),因此它必须正常工作才能进行测试。 我应该怎么做才能使使用Chrome驱动程序的Selenium测试能够在Travis CI上运行?
到目前为止,我已经看到了许多解决问题的方法,但是没有一种有效。我觉得这是不可能。为什么这有问题?
已更新。
正如@LucasTierney所说,尝试删除- google-chrome-stable --headless --disable-gpu --no-sandbox --remote-debugging-port=80 http://localhost &
并没有做任何更改。
已更新
好吧,终于可以开始使用上面相同的配置了。我不知道发生了什么,为什么它没有更早起作用。
答案 0 :(得分:0)
您使用的chromedriver版本过旧。 2.30
仅支持(正式)v58-60
。如果要在安装时使用最新的稳定器(当前为70
),则应使用支持它的chromedriver。那将是2.42
或更高