2016-06-22 14 views
1
import org.testng.annotations.Test; 
import org.testng.annotations.BeforeMethod; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.testng.annotations.AfterMethod; 

    public class TestNG { 
     public WebDriver driver; 

    @Test 
     public void main() throws Exception { 
     driver.findElement(By.id("account")).click(); 
     driver.findElement(By.id("log")).sendKeys("********"); 
     driver.findElement(By.id("pwd")).sendKeys("*****"); 
     driver.findElement(By.id("login")).click(); 
     System.out.println("Login Successfully :-)"); 
     driver.findElement(By.id("account_logout")).click(); 
     Thread.sleep(15000); 
    } 
    @BeforeMethod 
     public void beforeMethod() { 
     System.setProperty("webdriver.chrome.driver", "D:\\chromedriver_win32 (1)\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 
     driver.get("http://store.demoqa.com/"); 
    } 

    @AfterMethod 
     public void afterMethod() { 
     driver.quit(); 
    } 
} 

Die @BeforeMethod erfolgreich lief und startete die angegebene Webseite, aber nachdem die Webseite geöffnet hat, sollte es in Richtung der Hauptfunktionalität heißt @BeforeMethod bewegen, aber nicht in der Lage weiter zu bewegen. Bitte teilen Sie mir mit, ob etwas mit dem Code nicht stimmt.Unable Test Case durch TestNG Execute

Unten Fehler bekommen wir: -

[TestNG] Laufen:

C:\Users\gmohammad\AppData\Local\Temp\testng-eclipse--1784470156\testng-customsuite.xml 

Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 6093 
Only local connections are allowed. 
FAILED CONFIGURATION: @AfterMethod afterMethod 
java.lang.NullPointerException 
    at com.ghulam.TestNG.afterMethod(TestNG.java:33) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) 
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510) 
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:703) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) 
    at org.testng.TestRunner.privateRun(TestRunner.java:774) 
    at org.testng.TestRunner.run(TestRunner.java:624) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:359) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:261) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) 
    at org.testng.TestNG.run(TestNG.java:1048) 
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58) 

FAILED: f 
java.lang.NullPointerException 
    at com.ghulam.TestNG.f(TestNG.java:15) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:639) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108) 
    at org.testng.TestRunner.privateRun(TestRunner.java:774) 
    at org.testng.TestRunner.run(TestRunner.java:624) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:359) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:261) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) 
    at org.testng.TestNG.run(TestNG.java:1048) 
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58) 


=============================================== 
    Default test 
    Tests run: 1, Failures: 1, Skips: 0 
    Configuration Failures: 1, Skips: 0 
=============================================== 


=============================================== 
Default suite 
Total tests run: 1, Failures: 1, Skips: 0 
Configuration Failures: 1, Skips: 0 
=============================================== 

[TestNG] Time taken by [email protected]: 24 ms 
[TestNG] Time taken by [email protected]: 148 ms 
[TestNG] Time taken by [email protected]: 39 ms 
[TestNG] Time taken by [email protected]: 15 ms 
[TestNG] Time taken by [email protected]: 123 ms 
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 21 ms 

Antwort

0

mit dem folgenden Code Versuchen ..

Ich denke, dies geschieht aufgrund der zu erklären Treiber erneut in Ihrer @BeforeMethod Methode, die das Treiberobjekt für diese Methode selbst lokal macht.

Hinweis: - Versucht, Ihren Code auszuführen, es ist wieder bei "driver.findElement(By.id("account_logout")).click();" .. bitte korrigieren Sie diese und führen Sie erneut, es wird funktionieren.

package testcases; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.testng.annotations.AfterMethod; 
import org.testng.annotations.BeforeMethod; 
import org.testng.annotations.Test; 

public class TestNG { 
    public WebDriver driver; 

    @Test 
    public void main() throws Exception { 
     driver.findElement(By.id("account")).click(); 
     driver.findElement(By.id("log")).sendKeys("********"); 
     driver.findElement(By.id("pwd")).sendKeys("*****"); 
     driver.findElement(By.id("login")).click(); 
     System.out.println("Login Successfully :-)"); 
     driver.findElement(By.id("account_logout")).click(); 
     Thread.sleep(15000); 
    } 

    @BeforeMethod 
    public void beforeMethod() { 
     System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe"); 
     driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 
     driver.get("http://store.demoqa.com/"); 
    } 

    @AfterMethod 
    public void afterMethod() { 
     driver.quit(); 
    } 
} 
+0

danke, können Sie mir bitte wissen, welche Änderungen Sie in meinem Code abgesehen von Chrome Driver Location gemacht haben! @ M06494h –

+0

In Ihrer BeforeMethod-Methode habe ich nur wie folgt geändert, Rest bleibt gleich. Von WebDriver-Treiber = neuer ChromeDriver(); To driver = new ChromeDriver(); – M06494h