java - 为什么这个类方法返回 'null' ?

标签 java selenium

我的 Selenium 框架中有一个类,负责获取新的驱动程序对象并将其传递给测试以供使用。

但由于某种原因,它返回一个空错误,我不明白为什么。

这是类(class):

驱动管理器

private WebDriver driver;

    public WebDriver getDriver() {
        WebDriverFactory factory = new WebDriverFactory();
        driver = factory.CreateBrowser(CHOSEN_BROWSER);
        return driver;
    }

我的工厂类:

public WebDriver CreateBrowser(BrowserType browser)
    {
        switch(browser) {
            case Chrome:
                return createChromeDriver();
            case Firefox:
                return createFirefoxDiver();
            case InternetExplorer:
                return createInternetExplorerDriver();
            default:
                System.out.println("Invalid browser type");
                return null;
        }
    }

我创建 DriverManager 实例的测试:

基础测试:

public DriverManager driverManager;
    public WebDriver driver;

@之前

public void CreateDriver()
{
    driver = driverManager.getDriver();
    Pages.init(driver);
    Logging.info("TEST STARTING:  " + name.getMethodName());
}

但是一旦它到达 CreateDriver 方法中的第一行。我收到空指针错误,测试失败并出现 NullPointerException。

最佳答案

我假设您的 driverManager 属性为 null。这就是 driver = driverManager.getDriver(); 导致 NPE 的原因。

我想 public DriverManager driverManager = new DriverManager(); 已经可以解决这个问题了。

关于java - 为什么这个类方法返回 'null' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58787634/

相关文章:

Python/Selenium - 获取元素后面的元素

javascript - Protractor "Error while waiting for Protractor to sync with the page"浏览 Angular 站点

java - 带继承的序列化 (Java)

java - 为什么新线程在事务性 Spring JUnit 测试中看不到主线程准备的测试数据?

java - JPA 使用 SELECT 连接表

java - 如何使用 Java 处理 Selenium 的代理身份验证?

java - 如何确定表示给定整数所需的字节数?

java - 使用 BouncyCaSTLe 在 Java 中验证 ECDSA 签名时出错

python - "Unable to find a matching set of capabilities"-- 使用 Python 2.7 的 Selenium

Selenium 网络驱动程序 : Unable to click a link (Not inside iframe- able to print gettext value from the webelement)