2016-05-04 9 views
0

Ich bekomme NullPointerException in meinem JUnit-Test, wenn ich versuche, den aktuellen Webdriver-Fensterhandle zu erhalten und an eine String-Variable übergeben und ich verstehe nicht warum?NullPointerException-Fehler für eine String-Variable mit webDriver.getWindowHandle

@Test 

public void citationLinkerTest() { 

//BeforeClass creates and instance of the browser and goes to the target URL. 


//ERROR AT THIS LINE: 

String firstWindowHandle = webDriver.getWindowHandle(); 


assertEquals("Expecting only one window", 1, webDriver.getWindowHandles().size()); 

} 

************ ERROR:

java.lang.NullPointerException 
    at com.sersol.alejp.tests.EJournalPortalNewUIIT.citationLinkerTest(EJournalPortalNewUIIT.java:60) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) 
    at org.junit.rules.RunRules.evaluate(RunRules.java:20) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78) 
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212) 
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 
+1

wie/wo haben Sie definieren und initialisieren 'webDriver'? –

+0

Ihre beste Wette..run Ihren Code im Debug-Modus ... oder im Debug-Modus gesetzt Debug-Punkt auf NPE-Ausnahme, um zu sehen, welcher Teil des Codes gibt Ihnen NPE –

Antwort

0

Sorry, aber wegen meiner weniger Rufpunkte ich nicht diese Antwort in der Antwort setzen konnte, aber als neue Antwort.

Wie @Kiril S in den Kommentaren erwähnt, könnte das Problem sein, wie und wo Sie den WebDriver definiert haben. Du hast den Code dieses Teils nicht angegeben, also angenommen, das Problem ist da. Wenn Sie mehrere Annotationen verwenden, müssen Sie den Treiber auf Klassenebene angeben, damit auf die Klasse und alle Methoden zugegriffen werden kann.

+0

Vielen Dank für Ihre Rückmeldung. Du warst alles in Ordnung. Ich habe den Code (Zeile, die Fehler verursacht hat) in eine andere Klassendatei verschoben, wo ich alles richtig initialisiert habe und mein Test ohne Fehler weiterging. – Rainier

0

Ihr Test die WebDriver nicht initialisiert scheint so getWindowHandle() gibt die Null dieses Problem verursacht

Verwandte Themen