执行脚本时出现此错误。我升级了FF(56),Gecko(v0.19)和Selenium 3.6 ......
这是我的代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Testing {
public static void main(String[] args) throws InterruptedException{
WebDriver driver = new FirefoxDriver();
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
driver.get("http://www.facebook.com");
Thread.sleep(5000);
System.out.println("website is opened");
driver.close();
}
}
日志错误:
线程中的异常" main" 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:754) 在org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124) 在org.openqa.selenium.firefox.GeckoDriverService.access $ 100(GeckoDriverService.java:40) 在org.openqa.selenium.firefox.GeckoDriverService $ Builder.findDefaultExecutable(GeckoDriverService.java:114) 在org.openqa.selenium.remote.service.DriverService $ Builder.build(DriverService.java:329) 在org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:150) 在org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:120) 在org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:98) at god.Testing.main(Testing.java:8)
答案 0 :(得分:0)
替换setProperty()
方法的位置,它应该在get()
方法之前
试试这段代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Testing {
public static void main(String[] args) throws InterruptedException{
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.facebook.com");
Thread.sleep(5000);
System.out.println("website is opened");
driver.close();
}
}
答案 1 :(得分:0)
我们在控制台上看到的错误 IllegalStateException
非常正确且合理。
在您的代码块中,就在开头,您首先初始化 WebDriver
实例并将其投放到 FirefoxDriver
,如下所示:
WebDriver driver = new FirefoxDriver();
执行此行代码后, Java Compiler
没有关于 Test Configuration
使用 geckodriver.exe
的信息, Test Configuration
的行稍后会在您的程序中提及,如下所示:
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
因此,如果没有找到合适的 driver executable
, Java Compiler
会抱怨 java.lang.IllegalStateException
您的问题的解决方案是重新排列2行代码,如下所示:
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();