从Eclipse运行时,以下代码可以正常运行:
System.setProperty("webdriver.gecko.driver", pathToGeckoDriver);
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
WebDriver driver = new FirefoxDriver(options);
driver.manage().window().setSize(new Dimension(2500, 1500));
driver.get(myUrl);
driver.close();
但是在Docker容器中运行时失败,并显示以下错误:
The driver server has unexpectedly died!
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z'
System info: host: 'XXXX', ip: 'XXX.X.X.X', os.name: 'Linux', os.arch:'amd64', os.version: '3.10.0-862.9.1.el7.x86_64', java.version: '1.8.0_73'
Driver info: driver.version: RemoteWebDriver
我读到它可能来自Selenium framewrok与Firefox版本之间的不兼容。我正在使用以下Selenium框架:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>3.14.0</version>
</dependency>
并且Firefox已在两个环境中最新版本的最新安装。
我没什么主意了……有人有任何指针/想法吗?
答案 0 :(得分:1)
此错误消息...
The driver server has unexpectedly died!
...表示 GeckoDriver 无法启动/产生新的 WebBrowser ,即 Firefox浏览器会话。
您的主要问题是所使用的二进制版本之间的不兼容性:
因此 JDK v8u73 和 Selenium Client v3.13.0 之间显然不匹配。
Test
。driver.quit()
方法内调用tearDown(){}
,以优雅地关闭和销毁 WebDriver 和 Web Client 实例。答案 1 :(得分:0)
尝试这种组合 硒11.6+ 壁虎-0.21 日食霓虹灯 firefox-57.0 +