尝试执行代码时出错?

时间:2017-10-06 19:06:56

标签: java selenium

执行脚本时出现此错误。我升级了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)

2 个答案:

答案 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();
相关问题