JAVA:使用GeckoDriver在Linux上运行Selenium测试:驱动程序不可执行

问题描述:

我目前正在使用Linux机器上的Selenium WebDriver进行测试自动化项目。 (Ubuntu 16.04.3)测试可以在Windows机器上没有任何错误地执行,因为我试图在Linux VM上运行测试,并且在初始化GeckoDriver时遇到了严重问题。JAVA:使用GeckoDriver在Linux上运行Selenium测试:驱动程序不可执行

这里是我的代码部分:

System.setProperty("webdriver.gecko.driver", _GECKO_DRIVER); 
WebDriver driver = new FirefoxDriver(); 

变量_GECKO_DRIVER是文件路径到Linux的可执行文件,我从这个镜子下载:https://github.com/mozilla/geckodriver/releases(tar.gz的文件夹中)

不幸的是JAVA无法初始化驱动程序,所以测试不能运行,它会导致以下错误:

Exception in thread "main" java.lang.IllegalStateException: 
The driver is not executable: path/to/repo/./src/main/resources/Driver/GeckoDriver/geckodriver 
at com.google.common.base.Preconditions.checkState(Preconditions.java:534) 
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:140) 
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:131) 
at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:41) 
at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115) 
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:329) 
at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:103) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:99) 

我怎样才能解决这个问题,并初始化驱动正确吗?

从您的异常:

driver is not executable: 

使其可执行

chmod +x geckodriver 

,然后重试。