Chromedriver in Java not executable

2019-07-19 14:20发布

So i'm trying to to learn Selenium and encountered a problem. Can't run chromedriver.

Error:

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

Code:

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

I have my chromedriver in the right path i guess, here is the image. enter image description here

3条回答
Rolldiameter
2楼-- · 2019-07-19 14:49

File permissions for Unix based files can be checked and set via java like:

Check if the file permission allow :

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.

Set the file permission :

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.
查看更多
霸刀☆藐视天下
3楼-- · 2019-07-19 14:51

I assume you just downloaded the chromedriver application, in which case you simply have to mark it as executable in Unix:

chmod +x chromedriver 

If you can run the application yourself from the terminal, then WebDriver should be able to as well.

By the way, I wouldn't include chromedriver inside your project:

  • You'll want to reuse it on other projects
  • According to the documentation:

include the ChromeDriver location in your PATH environment variable

查看更多
霸刀☆藐视天下
4楼-- · 2019-07-19 14:57

The problem is exactly in permissions to the chromedriver in the target directory. To solve the problem author mentioned above change your chromedrive initialization to the following:

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

of course use your own appropriate directory to the file.

查看更多
登录 后发表回答