平台详细信息:
geckodriver 0.21.0,Firefox:60,硒:3.12,操作系统7
当我使用mvn运行它时,它会成功启动:
geckodriver INFO收听127.0.0.1:14185
木偶信息在端口284135上监听
测试可以在Windows计算机上成功运行,但是在CentOs 7上运行该测试时,测试将被跳过。
我观察到,由于Firefox的GUI在一段时间后关闭,并在cmd控制台上显示以下信息和错误,因此跳过了所有测试:
信息:org.openqa.selenium.WebDriverException:java.io.IOException: Connection {localhost:33365,proxy = DIRECT上流的意外结束 hostAddress = localhost / 12 6.10.0.1:258107
[错误] java.net.ConnectException:无法连接到 本地主机/127.0.0.1:2285
/ bin / sh:第1行:8780被杀死 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre/bin/java
if(platform.equalsIgnoreCase("linux")) {
FirefoxOptions options = new FirefoxOptions();
DesiredCapabilities desiredCap = DesiredCapabilities.firefox();
profile.setPreference("browser.download.dir",System.getProperty("user.dir")+ File.separator + "target");
System.setProperty("webdriver.gecko.driver", "/path/geckodriver/geckodriver");
System.setProperty("webdriver.firefox.bin","/usr/bin/firefox/firefox");
desiredCap.setCapability(CapabilityType.PLATFORM_NAME,Platform.LINUX);
desiredCap.setCapability("webdriver.firefox.profile",DesiredCapabilities.firefox());
driver = new FirefoxDriver();
}
我花了很多时间在此上,但找不到根本原因。 使用Maven surefire插件2.19.1。
请帮助我,我真的被困在这里。
答案 0 :(得分:2)
根据下面的文档,结合您在问题中提到的二进制文件( Selenium v3.12 / GeckoDriver v0.21.0 / Firefox v60 )具有以下兼容性和稳定性:
此错误消息...
INFO: org.openqa.selenium.WebDriverException: java.io.IOException: unexpected end of stream on Connection{localhost:33365, proxy=DIRECT hostAddress=localhost/12 6.10.0.1:258107
[ERROR] java.net.ConnectException: Failed to connect to localhost/127.0.0.1:2285
...表示 GeckoDriver 无法启动/产生新的 WebBrowser ,即 Firefox浏览器会话。
正如您提到的使用 GeckoDriver v0.21.0 一样,您无需在{strong> setProperty
中提及webdriver.firefox.bin
。您需要确保将 Mozilla Firefox 安装在每个系统的默认位置。
FirefoxOptions
类和DesiredCapabilities
类对象,但是在初始化 WebDriver时并未传递它们。FirefoxOptions
类和DesiredCapabilities
类对象,则需要在初始化 WebDriver 和 Web的过程中传递它们浏览器。FirefoxOptions
类和DesiredCapabilities
类对象。答案 1 :(得分:1)
您的代码对我来说很好。
检查自动化中正在使用的所有进程,确保没有运行多个进程。最重要的是:
ps -ef|grep firefox
ps -ef|grep geckodriver
ps -ef|grep java
如果正在运行多个进程,请关闭
检查是否有任何错误日志:
sudo vi /var/log/messages
查找是否为Kill或ERROR。这应该可以帮助解决它的损坏。