我已经安装了Gecko驱动程序,但是仍然出现错误

时间:2018-07-26 15:29:05

标签: java selenium webdriver

我安装了Gecko驱动程序,因为我遇到了以下错误:“ java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;”

但是在应用代码后,我仍然遇到Gecko驱动程序错误。

下面是我的完整代码。请让我知道我在想什么。

val c = C()
c.run { // apply or with
  D().foo() // accessible
}

D().foo() // not accessible

4 个答案:

答案 0 :(得分:2)

要验证壁虎驱动程序是否与您当前的firefox&selenium版本兼容,请执行以下操作:

如果您使用的是Windows OS,请在 System32 上保存下载的gecko驱动程序,如果您使用的是Mac OSX,请 / usr / local / bin

  1. 通过以下命令运行Selenium Standalone服务器:java -jar selenium-server-standalone-3.13.0.jar
  2. 在Firefox浏览器中打开以下网址:http://localhost:4444/wd/hub
  3. 创建会话并选择Firefox浏览器

如果浏览器启动,则geckodriver与Firefox和Selenium版本的兼容性没有问题。

答案 1 :(得分:0)

JUnit使用的主入口点与您在此处定义的public static void main(String[] args)方法不同,因此,如果执行测试,将不会执行System#setProperty

要为该类中的所有测试一次添加系统属性,您需要定义一个@BeforeClass方法:

public class Pawan {

    public static WebDriver driver;

    @BeforeClass
    static void init() {
        System.setProperty("webdriver.firefox.marionette","C:\\Users\\Lalit-pc\\Desktop\\geckodriver-v0.21.0-win64\\geckodriver.exe");
    }

    //test cases here...
}

现在,出于开发目的,我建议将此变量设置为PATH环境变量(取决于OS)可访问的常量,而不是将其设置为系统属性。

答案 2 :(得分:0)

如果您不需要@BeforeClass注释,也可以在@Test中定义geckodriver:

     @Test
     public void test()  {
         System.setProperty("webdriver.firefox.marionette","C:\\Users\\Lalit-pc\\Desktop\\geckodriver-v0.21.0-win64\\geckodriver.exe");
         WebDriver driver = new FirefoxDriver();    
         driver.manage().window().maximize();
         driver.get("https://www.google.com/");

这也将起作用:)

答案 3 :(得分:0)

需要进行小的设置更改:(最新的Firefox浏览器)

public class Pawan {

public static WebDriver driver;

@BeforeClass
public static setup() {

System.setProperty("webdriver.gecko.driver","C:\\Users\\Lalit-pc\\Desktop\\geckodriver-v0.21.0-win64\\geckodriver.exe");

driver = new FirefoxDriver();

}

// Urs test here