Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 硒铬驱动程序和Travis CI don';我们不能一起工作_Java_Spring_Selenium_Travis Ci - Fatal编程技术网

Java 硒铬驱动程序和Travis CI don';我们不能一起工作

Java 硒铬驱动程序和Travis CI don';我们不能一起工作,java,spring,selenium,travis-ci,Java,Spring,Selenium,Travis Ci,Travis构建我的应用程序并进行Selenium测试时,会在日志中抛出以下消息: 只允许本地连接 然后测试失败,出现org.openqa.selenium.WebDriverException:未知错误:Chrome启动失败:异常退出异常 .travis.yml: language: java jdk: - openjdk8 sudo: required dist: trusty addons: # get google-chrome-stable chrome: stable bef

Travis构建我的应用程序并进行Selenium测试时,会在日志中抛出以下消息:


只允许本地连接

然后测试失败,出现
org.openqa.selenium.WebDriverException:未知错误:Chrome启动失败:异常退出
异常

.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>

org.seleniumhq.selenium
硒爪哇
3.14.0
我觉得这是关于特拉维斯的配置。我的应用程序是基于web的(Spring),因此它必须正常工作才能进行测试。 我应该怎样做才能使带有Chrome驱动程序的Selenium测试能够在Travis CI上工作

到目前为止,我已经看到了许多解决这个问题的方法,但没有一种有效。我觉得这是不可能的。为什么会有问题

已更新。

正如@LucasTierney所说的,试图删除
-googlechrome-stable--headless--disable-gpu--no-sandbox--remote-debuging-port=80http://localhost &
未进行任何更改

已更新


最后,它开始使用上面相同的配置。我不知道发生了什么事,也不知道为什么早些时候它不起作用

您使用的chromedriver版本太旧了
2.30
仅支持(官方)
v58-60
。如果要使用最新的stable(当前为
70
),则在安装时应使用支持它的chromedriver。这将是
2.42
或更高的看看@BalwinderSingh没有帮助。问题是,我只有在使用Travis时才面临这个问题,而不是在本地机器上进行测试时,“只允许本地连接”expected@CoreyGoldberg有什么问题吗?看起来我做了所有应该做的事情,为什么你要在安装前启动浏览器?我没有提到我的错误,但我已经尝试使用最新的chromedriver版本。不幸的是,结果还是一样。为什么在运行测试之前要启动chrome浏览器?这将导致问题`-google chrome stable--headless--disable gpu--no sandbox--remote debugging port=80&`你是什么意思?但是如果Selenium需要浏览器,我怎么能在没有启动浏览器的情况下进行测试呢?Selenium为您启动浏览器,它无法连接到已经运行的浏览器。很好,我评论了这个
-谷歌chrome稳定-无头-禁用gpu-无沙盒-远程调试端口=80http://localhost &
但同样的问题仍然存在