在 Chrome 中通过 Selenium webDriver 运行测试用例时出现 java.lang.NullPointerException

标签 java selenium-webdriver

我的类(class)使用 Selenium WebDriver 并抛出错误。

public class Test_Chromedriver {
    public static WebDriver driver; 
    public static void main(String[] args) {
        try {
System.setProperty("webdriver.chrome.driver","E:\\jars\\chromedriver.exe");
            WebDriver driver=new ChromeDriver();
            driver.get("http://www.facebook.com");
            driver.findElement(By.id("email")).sendKeys("surya");
            driver.findElement(By.name("pass")).sendKeys("hello");
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            driver.close();
            driver.quit();
        }
    }
}

一旦我运行上面的代码,下面的错误消息就会出现:

Started ChromeDriver
port=12877
version=23.0.1240.0
log=D:\Eclipse Juno Workspace\AS Selenium workspace\WebDriver Applications\chromedriver.log
Exception in thread "main" java.lang.NullPointerException
    at Test_Chromedriver.main(Test_Chromedriver.java:25)

注意:webdriver 打开 chrome 浏览器,然后在字段中输入值,但上面的错误一直显示在控制台中,最后阻止也没有执行。

最佳答案

你的麻烦来自你的try/catch,特别是你的finally

因为您的驱动程序 仅在您的try{} 中,所以...您的finally 无法对您的驱动程序执行任何操作。我将重命名您的驱动程序以帮助您了解此处发生的情况。

public class Test_Chromedriver {
    public static WebDriver driverNULL; // <- never instantiate
    public static void main(String[] args) {
        try {
            System.setProperty("webdriver.chrome.driver","E:\\jars\\chromedriver.exe");
            WebDriver driverOK=new ChromeDriver(); // < - local variable
            driverOK.get("http://www.facebook.com");
            driverOK.findElement(By.id("email")).sendKeys("surya");
            driverOK.findElement(By.name("pass")).sendKeys("hello");
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            driverNULL.close(); // <- want to close a object never instantiate so null pointer exception
            driverNULL.quit();
        }
    }
}

你现在能做什么?

public class Test_Chromedriver {
    public static WebDriver driver; 
    public static void main(String[] args) {
        try {
            System.setProperty("webdriver.chrome.driver","E:\\jars\\chromedriver.exe");
            driver=new ChromeDriver(); // <- remove the Webdriver type
            driver.get("http://www.facebook.com");
            driver.findElement(By.id("email")).sendKeys("surya");
            driver.findElement(By.name("pass")).sendKeys("hello");
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally{
            driver.close();
            driver.quit();
        }
    }
}

关于在 Chrome 中通过 Selenium webDriver 运行测试用例时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236855/

相关文章:

javascript - 使用 Protractor 获取表数据并存储它

java - Talend 的两个版本给出不同的结果

java - 如何关闭 JFrame 对话框?

java - 如何在单独的线程中运行java进程

java - driver.findby Xpath 中的标记存在语法错误

python - selenium.common.exceptions.WebDriverException : Message: unknown error: unable to discover open pages while test execution through InstaPy and selenium

java - 无法连接 VirtualBox VM 上的分析器 (JMC)

java - Flexiforce 到 Uno 到键盘。工作正常,但未达到预期效果

java - java中如何清除ClassCastException?

java - 为什么我总是将页面中的单选按钮计数为零?