Chromedriver无法在AWS EC2上打开Chrome浏览器

时间:2019-01-21 20:17:57

标签: linux selenium google-chrome amazon-ec2 selenium-chromedriver

我正在尝试运行简单的Java代码以在AWS上设置EC2计算机,其纯粹目的是运行硒。

只需更改Chrome路径,我本地(MAC)上的相同代码就可以正常工作

我可以独立启动chromedriver和google-chrome而不会出现问题。

  • chromedriver版本-71.0.3578.80

  • Google Chrome 71.0.3578.98

这是Java代码

import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class TecAdminSeleniumTest {

    public static void main(String[] args) throws IOException, InterruptedException {
            System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");
            ChromeOptions chromeOptions = new ChromeOptions();
            chromeOptions.addArguments("--headless");
            chromeOptions.addArguments("--no-sandbox");

            WebDriver driver = new ChromeDriver(chromeOptions);

            driver.get("https://google.com");

            Thread.sleep(1000);

            if (driver.getPageSource().contains("I'm Feeling Lucky")) {
                    System.out.println("Pass");
            } else {
                    System.out.println("Fail");
            }
            driver.quit();
    }
}

观察到错误:

Build info: version: '2.39.0', revision: 'ff23eac', time: '2013-12-16 16:11:15'
System info: host: 'XXXXXXX', ip: 'XXXXXX', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.77-70.59.amzn1.x86_64', java.version: '1.8.0_25'

我一直收到以下异常:

Driver info: org.openqa.selenium.chrome.ChromeDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
at org.openqa.selenium.chrome.ChromeDriver.startSession(ChromeDriver.java:182)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:111)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:115)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:161)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:150)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:139)

1 个答案:

答案 0 :(得分:0)

此错误消息...

Build info: version: '2.39.0', revision: 'ff23eac', time: '2013-12-16 16:11:15' System info: host: 'XXXXXXX', ip: 'XXXXXX', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.77-70.59.amzn1.x86_64', java.version: '1.8.0_25'

...表示您使用的二进制版本之间存在某些不兼容性,如下所示:

  • 您的 Selenium Client 版本是 2013-12-16 16:11:15 2.39.0 ,大​​于年满5岁
  • 您的 JDK版本 1.8.0_25 ,这很古老。

因此 JDK v8u25 Selenium Client v2.39

之间存在明显的不匹配

解决方案