2017-08-03 4 views
1

Ich habe meinen Code in Java mit Selenium geschrieben. Wenn ich den Code ausführe, wird eine NullPointerException ausgelöst. Überprüfen Sie die Ausnahme unterNullPointerException in meinem Code. Wie man damit umgeht

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

Mein Code ist wie folgt:

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", "[email protected]"); 
    } 
    } 
+0

Sie haben die Methode 'launchApplication' nicht aufgerufen, in der Sie das webdriver-Objekt tatsächlich initialisieren. – Barney

+0

Mögliches Duplikat von [Was ist eine NullPointerException und wie behebe ich sie?] (Https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – JeffC

Antwort

0

Hier ist die Antwort auf Ihre Frage ist:

Sie sehen eine NullPointerException weil aus main() Sie versuchen, die für den Zugriff auf loginApplication() Methode direkt am Anfang, die eine aktive Instanz der WebDriver, dh die driverfindElement(By.name("username")); &erfordertund führen Sie sendKeys() Methode auf der HTML DOM. Die Lösung wäre, zuerst auf die launchApplication() Methode zuzugreifen, so dass Sie eine aktive Instanz von driver und IE Browser haben. Als nächstes können Sie auf loginApplication() Methode zugreifen.

Hier ist Ihr Arbeitscodeblock:

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", "[email protected]"); 
    obj.closeBrowser(); 
    } 

} 

Lassen Sie mich wissen, ob dies Ihre Frage beantwortet.

Verwandte Themen