我的代码中的NullPointerException。如何处理它

时间:2017-08-03 03:36:56

标签: selenium selenium-webdriver

我使用Selenium用Java编写了我的代码。当我运行代码时,它会抛出NullPointerException。检查以下例外

Exception in thread "main" java.lang.NullPointerException
    at AdminInterface.loginApplication(AdminInterface.java:17)
    at AdminInterface.main(AdminInterface.java:29)

我的代码如下:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class AdminInterface {
    public WebDriver driver;
    public void launchApplication() throws Exception
    {
        System.setProperty("webdriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
        driver.get("https://www.gcrit.com/build3/admin/");
    }
    public void loginApplication(String Username, String Password)
    {
        driver.findElement(By.name("username")).sendKeys(Username);
        driver.findElement(By.name("password")).sendKeys(Password);
        driver.findElement(By.id("tbd1")).click();
    }
    public void closeBrowser()
    {
        driver.close();
    }
    public static void main(String[] args) 
    {
        AdminInterface obj = new AdminInterface();
        obj.loginApplication("admin", "admin@123");
    }
    }

1 个答案:

答案 0 :(得分:0)

以下是您的问题的答案:

您看到的是NullPointerException,因为您从main()开始尝试访问loginApplication()方法,这需要WebDriver的有效实例,即driverfindElement(By.name("username"));& findElement(By.name("password")); sendKeys()并在HTML DOM上执行launchApplication()方法。

解决方案是首先访问driver方法,以便拥有IE BrowserloginApplication()的有效实例。接下来,您可以访问package demo; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class Q45474353_NPE { public WebDriver driver; public void launchApplication() { System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"); driver = new InternetExplorerDriver(); driver.get("https://www.gcrit.com/build3/admin/"); } public void loginApplication(String Username, String Password) { driver.findElement(By.name("username")).sendKeys(Username); driver.findElement(By.name("password")).sendKeys(Password); driver.findElement(By.id("tbd1")).click(); } public void closeBrowser() { driver.close(); } public static void main(String[] args) { Q45474353_NPE obj = new Q45474353_NPE(); obj.launchApplication(); obj.loginApplication("admin", "admin@123"); obj.closeBrowser(); } } 方法。

这是您的工作代码块:

public class KillChromeDrivers {

    public static void main(String args[]) {


        try {

            Runtime.getRuntime().exec("cmd /c start E:\\Work_Folder\\SelTools\\KillDrivers.bat");
            //Runtime.getRuntime().exec()
        } catch (Exception ex) {



        }
    }

}

如果这回答你的问题,请告诉我。