通过类对象引用时,无法通过系统属性配置Selenium浏览器驱动程序。
Selenium
:3.5.0
GeckoDriver
:0.18.0
Mozilla Firefox
:55.0.2
OS
:Windows 8专业版
当尝试通过类方法设置系统属性时,Selenium无法找到webdriver可执行文件并抛出java.lang.IllegalStateException
,并显示错误消息:
The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
package demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Q45756729_PageTitle
{
WebDriver driver;
public void title()
{
System.setProperty("webdriver.firefox.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
driver=new FirefoxDriver();
driver.get("https://www.google.co.in");
String titleofthepage=driver.getTitle();
System.out.println(titleofthepage);
}
public static void main(String[] args)
{
Q45756729_PageTitle obj1=new Q45756729_PageTitle();
obj1.title();
}
}
Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
at com.google.common.base.Preconditions.checkState(Preconditions.java:750)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
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)
at demo.Q45756729_PageTitle.tite(Q45756729_PageTitle.java:12)
at demo.Q45756729_PageTitle.main(Q45756729_PageTitle.java:21)
答案 0 :(得分:3)
有时会发生这种情况:) -
替换此
System.setProperty("webdriver.firefox.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
与
System.setProperty("webdriver.gecko.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
希望这会有所帮助。感谢。
答案 1 :(得分:0)
使用gecko.driver
代替此Firefox.driver
:
System.setProperty("webdriver.gecko.driver","E:/Gecko/geckodriver.exe");
答案 2 :(得分:0)
System.setProperty("webdriver.firefox.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
需要替换为
System.setProperty("webdriver.gecko.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
因为驱动程序exe已由gecko代替,但是类名仍为FirefoxDriver。