Java 中的 Chromedriver 不可执行

Chromedriver in Java not executable

所以我正在尝试学习 Selenium 并遇到了问题。 不能 运行 chromedriver.

错误:

Exception in thread "main" java.lang.IllegalStateException: The driver is not executable: /Users/Roberto/Documents/EclipseProjects/MansPirmaisSelenium/lib/chromedriver

代码:

System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"//lib//chromedriver");
WebDriver chromeDriver = new ChromeDriver();
chromeDriver.get("http://www.google.lv");

我猜我的 chromedriver 在正确的路径上,这是图像。

我假设您刚刚下载了 chromedriver 应用程序,在这种情况下,您只需 mark it as executable 在 Unix 中:

chmod +x chromedriver 

如果您可以自己从终端 运行 应用程序,那么 WebDriver 应该也可以。

顺便说一下,我不会在您的项目中包含 chromedriver

  • 您会想在其他项目中重复使用它
  • 根据documentation

include the ChromeDriver location in your PATH environment variable

可以通过 java 检查和设置基于 Unix 的文件的文件权限,例如:

检查文件权限是否允许:

file.canExecute(); – return true, file is executable; false is not.
file.canWrite(); – return true, file is writable; false is not.
file.canRead(); – return true, file is readable; false is not.

设置文件权限:

file.setExecutable(boolean); – true, allow execute operations; false to disallow it.
file.setReadable(boolean); – true, allow read operations; false to disallow it.
file.setWritable(boolean); – true, allow write operations; false to disallow it.

问题恰恰出在目标目录中 chromedriver 的权限上。为了解决作者上面提到的问题,请将您的 chromedrive 初始化更改为以下内容:

System.setProperty(System.getProperty("user.dir") + "/src/test/resources/chromedriver");

当然是用你自己合适的目录来存放文件。

我是 selenium-java 的新手,遇到了同样的问题并通过在 eclipse 中提供如下可执行访问来解决:

  1. 右键单击 chromedriver 并单击属性
  2. 在资源选项卡下检查所有者 > 执行