【发布时间】:2018-02-23 20:47:44
【问题描述】:
我正在使用 Eclipse、Selenium 和 chromedriver 来促进网站数据的无头检索。虽然我的笔记本电脑运行良好,但我已将 WAR 版本部署到 Java/Linux 托管服务,并收到以下错误,表明它找不到 chromedriver。
键入异常报告
留言:
The driver executable does not exist: /drivers/chromedriver
说明:
The server encountered an unexpected condition that prevented it from fulfilling the request.
例外:
java.lang.IllegalStateException: The driver executable does not exist: /drivers/chromedriver
com.google.common.base.Preconditions.checkState(Preconditions.java:534)
org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:136)
org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:131)
org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:329)
org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)
com.carsales.rego.CarRegoAction.doPost(CarRegoAction.java:57)
javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
最初我有 Windows 位置 C:\java\selenium\drivers\chromedriver.exe
但是我上传的是Linux版本,放在“/drivers/chromedriver”
部分代码如下所示...
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String carRegistrationNumer = request.getParameter("cargo");
System.setProperty("webdriver.chrome.driver",
"/drivers/chromedriver");
ChromeOptions options = new ChromeOptions();
options.addArguments("headless");
options.addArguments("window-size=1200x600");
WebDriver webDriver = new ChromeDriver(options);
是的,我已将文件夹和 chromedriver 的权限设置为 777 (chmod 777),所以应该没问题 - 只是找不到。
请帮忙...
【问题讨论】:
标签: java linux selenium selenium-webdriver selenium-chromedriver