Error while using Junit for Module 11 LaunchDynamically.java | Selenium Forum
M
Posted on 13/03/2016
Hi All,

I am getting the following error while trying to run the LaunchDynamically.java program (Module11) using JUnit.
java.lang.NullPointerException
at LaunchDynamically.testApp(LaunchDynamically.java:74)
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.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.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.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
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.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Here is my code.


import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.DataProvider;



@RunWith(Parameterized.class)
public class LaunchDynamically {



public String browser;
public String username;
public String password;

//WebDriver driver = null;

public LaunchDynamically(String browser, String username, String password){
this.browser = username;
this.username = username;
this.password = password;

}

@Parameters
public static Collection<Object[]> getData(){

Object[][] data = new Object[3][3];

data[0][0] = "Mozilla";
data[0][1] = "testpass1";
data[0][2] = "2233";

data[1][0] = "Chrome";
data[1][1] = "testpass2";
data[1][2] = "3344";

data[2][0] = "IE";
data[2][1] = "testpass3";
data[2][2] = "5544";

return Arrays.asList(data); //convert the object array into array list

}

@Test
public void testApp(){

WebDriver driver = null;

if(browser.equals("Mozilla")){
driver = new FirefoxDriver();

}
else if(browser.equals("Chrome")){
System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
driver = new ChromeDriver();
}
else if(browser.equals("IE")){
System.setProperty("webdriver.ie.driver", "E:\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
}

driver.get("http://yahoo.com");
System.out.println(driver.getTitle());

}


}

Please help.

M
Replied on 14/03/2016

[quote:75v1lhht]

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import org.testng.annotations.DataProvider;
[/quote:75v1lhht]

use either testng or junit don't use both.


M
Replied on 14/03/2016

Still getting the same null pointer exception error even after removing the import statement for testNG.


M
Replied on 15/03/2016

did you import junit dataprovider?