【问题标题】:How can i start the constructor from my class?我怎样才能从我的班级开始构造函数?
【发布时间】:2018-02-22 04:23:52
【问题描述】:

我遇到了这个问题,这让我发疯了,我有这门课

    package Test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Firefox {

    String keyFirefox = "webdriver.gecko.driver";
    String valueFirefox = "...path/geckodriver.exe";

    public Firefox(){
        System.setProperty(keyFirefox, valueFirefox);
    }

    WebDriver Firefox = new FirefoxDriver();
}

在我的主类中,我实例化了前一个类,并且可以毫无问题地访问属性

package Test;


public class EntryPoint {

    public static void main(String[] args) {


        Firefox firefoxBrowser = new Firefox();
        firefoxBrowser.Firefox.get("https://www.amazon.com.mx/");


    }

}

但是当它编译时返回一个错误:

线程“main”中的异常 java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.gecko.driver 系统属性设置;有关详细信息,请参阅https://github.com/mozilla/geckodriver。最新版本可从https://github.com/mozilla/geckodriver/releases下载

谢谢!

【问题讨论】:

  • Firefox 变量是在构造函数被调用之前创建的

标签: java selenium selenium-webdriver selenium-firefoxdriver


【解决方案1】:

如果你想在设置好属性后创建驱动,试试

public class Firefox {

    static final String FIREFOX_DRIVER = "webdriver.gecko.driver";
    static final String FIREFOX_DRIVER_PATH = "...path/geckodriver.exe";

    WebDriver driver;

    public Firefox(){
        System.setProperty(FIREFOX_DRIVER, FIREFOX_DRIVER_PATH);
        driver = new FirefoxDriver();
    }


}

【讨论】:

  • 很棒的解决方案(+1)
猜你喜欢
  • 2020-10-25
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 2019-09-04
  • 2021-03-17
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多