java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置
Posted
技术标签:
【中文标题】java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置【英文标题】:java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property 【发布时间】:2017-12-21 13:24:29 【问题描述】:package com.merchantPlatform;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class MerchantPlatformTest
public static void main(String[] args)
System.getProperty("webdriver.gecko.driver", "C:\\Selenium WebDriver\\geckodriver\\geckodriver-v0.17.0-win64\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
// Initialize WebDriver
WebDriver driver = new FirefoxDriver(capabilities);
/* This works fine for versions lesser than Selenium 3. For Selenium 3 and higher, it will throw java.lang.IllegalStateException */
// Maximize Window
driver.manage().window().maximize();
// Wait For Page To Load
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
// Navigate to MerchantPlatform URL
driver.get("http://localhost:52939/");
错误
System.getProperty
出现以下异常
线程“主”java.lang.IllegalStateException 中的异常:路径 驱动程序可执行文件必须由 webdriver.gecko.driver 设置 系统属性;有关详细信息,请参阅 https://github.com/mozilla/geckodriver。最新版本可以 从https://github.com/mozilla/geckodriver/releases下载 在 com.google.common.base.Preconditions.checkState(Preconditions.java:738) 在 org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124) 在 org.openqa.selenium.firefox.GeckoDriverService.access 100 美元(GeckoDriverService.java:41) 在 org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115) 在 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:330) 在 org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:108) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:137) 在 com.merchantPlatform.MerchantPlatformTest.main(MerchantPlatformTest.java:20)
【问题讨论】:
去掉webdrivers目录名中的空格试试 【参考方案1】:您必须使用 System.setProperty 而不是 System.getProperty,如下所示。
System.setProperty("webdriver.gecko.driver",
"C:\\Selenium WebDriver\\geckodriver\\geckodriver-v0.17.0-win64\\geckodriver.exe");
【讨论】:
【参考方案2】:我注意到您在打开浏览器时使用了错误的语法。
您必须使用System.setProperty
,而不是使用System.getProperty
,如下所述。
System.setProperty("webdriver.gecko.driver", "C:\\Selenium WebDriver\\geckodriver\\geckodriver-v0.17.0-win64\\geckodriver.exe");
有关此问题的更多详细信息,请参阅page。
【讨论】:
谢谢.. 它是 setProperty,现在工作正常.. 我试图将您的两个答案都标记为正确,但无法做到.. 虽然我搜索了很多这个错误,但我错过了设置部分。以上是关于java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置的主要内容,如果未能解决你的问题,请参考以下文章