Java Selenium在非GUI环境中使用ChromeDriver错误:由于没有系统实现,已禁用PAC支持

Java Selenium在非GUI环境中使用ChromeDriver错误:由于没有系统实现,已禁用PAC支持,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,当我使用Java和Selenium将我的自动化测试脚本从本地env(OSX)移动到服务器env(当然没有GUI的ubuntu14)时,我遇到了一些麻烦。 这就是问题所在。 我尝试使用以下命令java-jarmyautomation.jar3 1运行自动化测试 3 1 1只是一个应用程序参数,所以在我们的例子中与此无关。 但在我运行该命令之后,我得到了java selenium,并尝试通过chromedriver打开chrome浏览器。但不幸的是,出现了以下错误消息: PAC支持已禁用,因为没有系

当我使用Java和Selenium将我的自动化测试脚本从本地env(OSX)移动到服务器env(当然没有GUI的ubuntu14)时,我遇到了一些麻烦。 这就是问题所在。 我尝试使用以下命令java-jarmyautomation.jar3 1运行自动化测试 3 1 1只是一个应用程序参数,所以在我们的例子中与此无关。 但在我运行该命令之后,我得到了java selenium,并尝试通过chromedriver打开chrome浏览器。但不幸的是,出现了以下错误消息:

PAC支持已禁用,因为没有系统实现

另一条错误信息出现了,我们开始:

线程“main”org.openqa.selenium.WebDriverException中的异常: 未知错误:Chrome启动失败:异常退出(驱动程序) 信息:chromedriver=2.10.267518,平台=Linux3.13.0-36-generic x86_64)(警告:服务器未提供任何堆栈跟踪 信息)命令持续时间或超时:60.54秒

当然,我也不知道为什么会这样。但当我尝试使用GUI在本地环境中运行时(在OSX环境中),它运行没有任何问题,一切都运行良好。因此,在我的简短分析中,当我尝试在非GUI中运行chrome浏览器时,会出现此错误

因此,我尝试在我的linux服务器环境中进行一些更改。我尝试安装Xvfb,这样我的操作系统就好像有一个GUI控件控制它一样工作。 我使用bash脚本启动Xvfb

我重新运行了我的自动化脚本,但仍然遇到了问题。为了简短的了解,我在这里提供了一些关于如何创建自动化脚本的片段

public void execute(String username, String password){
    System.setProperty("webdriver.chrome.driver", "chromedriver");
    WebDriver driver = new ChromeDriver();

    System.out.println("Try pull all etalase");

    ServiceCommonNav.login(driver, username, password);
    ServiceCommonNav.moveTo(driver, "https://www.somewebsitetoscrap.com");

    Gson gson = new Gson();

    List<Etalase> etalases = pullEtalaseList(driver);
    SaveEtalaseRequest request = new SaveEtalaseRequest();
    request.setEtalases(etalases);

    SaveEtalaseWS ws = new SaveEtalaseWS();
    ws.call(request);

    String json = gson.toJson(etalases);
    System.out.println(json);

}
public void execute(字符串用户名、字符串密码){
System.setProperty(“webdriver.chrome.driver”、“chromedriver”);
WebDriver驱动程序=新的ChromeDriver();
System.out.println(“Try pull all etalase”);
ServiceCommonNav.login(驱动程序、用户名、密码);
ServiceCommonNav.moveTo(驱动程序)https://www.somewebsitetoscrap.com");
Gson Gson=新的Gson();
列表etalases=拉具列表(驱动程序);
SaveEtalaseRequest请求=新建SaveEtalaseRequest();
请求。setalases(etalases);
SaveEtalaseWS ws=新的SaveEtalaseWS();
ws.call(请求);
字符串json=gson.toJson(etalases);
System.out.println(json);
}
如果,如果我强烈要求在这个Xvfb上运行我的刮板,那么正确的方法是什么?(因此,我打开的chrome浏览器总是运行在Xvfb上,并像无头浏览器一样工作)。 步骤是什么,我应该修改什么代码来实现这一点。 非常感谢你的帮助,我刚被这个问题困扰了一个多星期。哎呀(


提前感谢…

X-starting bash脚本中的日志是什么?你是说Xvfb吗?没有错误日志,只是第一次运行日志。没有信息…可能我不明白你的说法。你能更清楚地告诉我吗?有人对此问题有其他方法吗?请参见:(:(你能用名为HtmlUnit的库来代替selenium吗?如果你坚持使用selenium,那么这篇文章对你很有用: