【问题标题】:Error when trying to execute a code? [duplicate]尝试执行代码时出错? [复制]
【发布时间】:2018-03-18 15:39:47
【问题描述】:

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

日志错误:

线程“主”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) 在 god.Testing.main(Testing.java:8)

【问题讨论】:

  • 为什么不在尝试启动驱动程序之前设置路径?
  • 好的,尝试了路径的位置并启动了驱动程序..成功打开了facebook,但同时出现了这些错误..

标签: java selenium


【解决方案1】:

替换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();
    }

}

【讨论】:

  • 试试这个代码,让我知道,它对我来说很好
  • 感谢您帮助我..虽然浏览器打开并且可以正常工作,但这次出现了不同的错误。
  • 1507418717668 geckodriver INFO geckodriver 0.19.0 1507418717676 geckodriver INFO 正在监听 127.0.0.1:15238
  • 看起来不一样,我会的。试着让你知道
  • 我试过这个脚本,现在我很好,但现在很难处理 Geolocation 弹出窗口。我尝试了发布在此站点上的脚本(谢谢),但仍然可以看到弹出窗口,并且此站点不允许我再问一个问题:-(请帮助。
【解决方案2】:

我们在控制台上看到的错误 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2014-06-06
    相关资源
    最近更新 更多