我是Selenium的新手。

我正在写一段代码DriverManager.Java(以加载浏览器)

package com.moni.tef;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class DriverManager {

    private static WebDriver driver;

    static {
        driver = new FirefoxDriver();
    }
    public WebDriver getWebDriver(){
        driver.get("https://public-testing/");
        return driver;
    }
}


然后我创建了另一个类。并尝试使用此getWebDriver方法。然后,我的代码更改为public static。代码正在运行,但任何人都可以解释一下此修复程序(通过Eclipse完成)

public static WebDriver getWebDriver(){
    driver.get("https://xxx.url.url");
    return driver;
}

最佳答案

IMO,在您新编写的类中,您尝试静态调用getWebDriver()方法:

DriverManager.getWebDriver()


而不是首先创建DriverManager的实例:

new DriverManager().getWebDriver()


这将导致编译错误,因为最初,DriverManager#getWebDriver()是实例方法,而不是类方法(因此为静态)。

因此,Eclipse可以通过使方法static成功编译来帮助您(肯定得到了您的非自愿认可)。

有关static概念的更多信息:单击here

07-24 21:34