0
package testNG;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.*;
public class TestNGUsingFacebook {
 WebDriver driver;
 @Test
 public void openBrowser() {
 try {
 System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver_win32\\chromedriver.exe");
 driver.manage().window().maximize();
 driver.manage().deleteAllCookies();
 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
 driver.get("https://wwww.facebook.com");
 } catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 @Test(dependsOnMethods = { "openBrowser" })
 public void loginToFacebook() {
 driver.findElement(By.id("email")).sendKeys("Neenad");
 driver.findElement(By.id("pass")).sendKeys("password");
 driver.findElement(By.id("loginbutton")).click();
 }
}

Whenever I try to run this sample code, I receive a null pointer exception as follows:

[RemoteTestNG] detected TestNG version 6.12.0
java.lang.NullPointerException
 at testNG.TestNGUsingFacebook.openBrowser(TestNGUsingFacebook.java:18)
 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:108)
 at org.testng.internal.Invoker.invokeMethod(Invoker.java:669)
 at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:877)
 at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1201)
 at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
 at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
 at org.testng.TestRunner.privateRun(TestRunner.java:776)
 at org.testng.TestRunner.run(TestRunner.java:634)
 at org.testng.SuiteRunner.runTest(SuiteRunner.java:425)
 at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:420)
 at org.testng.SuiteRunner.privateRun(SuiteRunner.java:385)
 at org.testng.SuiteRunner.run(SuiteRunner.java:334)
 at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
 at org.testng.TestNG.runSuitesSequentially(TestNG.java:1318)
 at org.testng.TestNG.runSuitesLocally(TestNG.java:1243)
 at org.testng.TestNG.runSuites(TestNG.java:1161)
 at org.testng.TestNG.run(TestNG.java:1129)
 at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
 at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
 at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
PASSED: openBrowser
FAILED: loginToFacebook
java.lang.NullPointerException
 at testNG.TestNGUsingFacebook.loginToFacebook(TestNGUsingFacebook.java:32)
 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:108)
 at org.testng.internal.Invoker.invokeMethod(Invoker.java:669)
 at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:877)
 at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1201)
 at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
 at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
 at org.testng.TestRunner.privateRun(TestRunner.java:776)
 at org.testng.TestRunner.run(TestRunner.java:634)
 at org.testng.SuiteRunner.runTest(SuiteRunner.java:425)
 at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:420)
 at org.testng.SuiteRunner.privateRun(SuiteRunner.java:385)
 at org.testng.SuiteRunner.run(SuiteRunner.java:334)
 at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
 at org.testng.TestNG.runSuitesSequentially(TestNG.java:1318)
 at org.testng.TestNG.runSuitesLocally(TestNG.java:1243)
 at org.testng.TestNG.runSuites(TestNG.java:1161)
 at org.testng.TestNG.run(TestNG.java:1129)
 at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
 at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
 at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
===============================================
 Default test
 Tests run: 2, Failures: 1, Skips: 0
===============================================

I have tried commenting the second function, but still Google Chrome does not open.

the_coder
7541 gold badge4 silver badges13 bronze badges
asked Oct 9, 2017 at 4:24
1
  • this is not how you setup browsers for your tests Commented Oct 9, 2017 at 4:46

3 Answers 3

1

As it appears, though you are setting the property for the chrome driver through

System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver_win32\\chromedriver.exe");

You are not initializing the driver instance before using it like : driver.manage().window().maximize();

So please add the following line as follows:

System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver_win32\\chromedriver.exe"); // Setting the chrome driver property
driver = new ChromeDriver(); // Inializing the chrome driver

driver is the declared WebDriver instance in your above code.

answered Oct 9, 2017 at 4:37
1

There is one small mistake you made, You have forget to initiate the instance of webdriver. This is the reason why you found the null pointer exception.

As your project is in Java Based, So require to follow java code standards and formats as well.

Here is the correct code :

@Test
 public void openBrowser() {
try {
 System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver_win32\\chromedriver.exe");
 driver = new ChromeDriver(); // just add this line
 driver.manage().window().maximize();
 driver.manage().deleteAllCookies();
 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
 driver.get("https://wwww.facebook.com");
} catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
}

answered Oct 9, 2017 at 4:38
0

You miss to instantiate the WebDriver. Add driver = new ChromeDriver(); in code after setProperty(), Rest is fine

try {
 System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver_win32\\chromedriver.exe");
 driver = new ChromeDriver(); 
 driver.manage().window().maximize();
 driver.manage().deleteAllCookies();
 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
 driver.get("https://wwww.facebook.com");
 } 
catch (Exception e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
answered Oct 9, 2017 at 9:23

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.