java.lang.NullPointerException
at com.xxxxx.pagetests.LoginPageTests.testInvalidLogin(LoginPageTests.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(
Method.java:606)
at org.testng.internal.MethodInvocationHelper.invokeMethod(
MethodInvocationHelper.java:86)
at org.testng.internal.Invoker.invokeMethod(
Invoker.java:646)
at org.testng.internal.Invoker.invokeTestMethod(
Invoker.java:823)
at org.testng.internal.Invoker.invokeTestMethods(
Invoker.java:1131)
at org.testng.internal.TestMethodWorker.invokeTestMethods(
TestMethodWorker.java:129)
at
org.testng.internal.TestMethodWorker.run(
TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(
TestRunner.java:778)
at
org.testng.TestRunner.run(
TestRunner.java:632)
at org.testng.SuiteRunner.runTest(
SuiteRunner.java:366)
at org.testng.SuiteRunner.runSequentially(
SuiteRunner.java:361)
at org.testng.SuiteRunner.privateRun(
SuiteRunner.java:319)
at
org.testng.SuiteRunner.run(
SuiteRunner.java:268)
at org.testng.SuiteRunnerWorker.runSuite(
SuiteRunnerWorker.java:52)
at
org.testng.SuiteRunnerWorker.run(
SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(
TestNG.java:1225)
at org.testng.TestNG.runSuitesLocally(
TestNG.java:1150)
at org.testng.TestNG.runSuites(
TestNG.java:1075)
at
org.testng.TestNG.run(
TestNG.java:1047)
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)
My Test Class:
public class LoginPageTests extends BaseSetup{
private WebDriver driver;
private LoginPage loginPage;
@BeforeTest
public void setUp(){
driver = getDriver();
}
@Test
public void testInvalidLogin(){
loginPage =new LoginPage(driver);
loginPage.enterWrongCredentials();
loginPage.logIn();
loginPage.verifyingTheLoginError();
}
My LogIn page:
public class LoginPage implements LoginPage_OR {
protected WebDriver driver;
//Actions builder = new Actions(driver);
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public void enterWrongCredentials(){
WebElement usernameField= driver.findElement(By.xpath(LoginPage_OR.userNameField));
usernameField.sendKeys("InvalidUsername");
driver.findElement(By.xpath(LoginPage_OR.passwordField)).sendKeys("InvalidPassword");
}
public void logIn(){
driver.findElement(By.xpath(LoginPage_OR.loginButton)).click();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
public void clickLanguageSelector(){
driver.findElement(By.xpath(LoginPage_OR.languageLocator)).click();
}
}
My Base setup:
public class BaseSetup {
private WebDriver driver;
static String driverPath = "/Users/Soumya/Documents/Automation_Workspace/ChromeDriver/";
public WebDriver getDriver() {
return driver;
}
private void setDriver(String browserType, String appURL) {
switch (browserType) {
case "chrome":
driver = initChromeDriver(appURL);
break;
case "firefox":
driver = initFirefoxDriver(appURL);
break;
default:
System.out.println("browser : " + browserType
+ " is invalid, Launching Firefox as browser of choice..");
driver = initFirefoxDriver(appURL);
}
}
private static WebDriver initChromeDriver(String appURL) {
System.out.println("Launching google chrome with new profile..");
System.setProperty("webdriver.chrome.driver", driverPath
+ "chromedriver");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(appURL);
return driver;
}
private static WebDriver initFirefoxDriver(String appURL) {
System.out.println("Launching Firefox browser..");
FirefoxProfile prof = new FirefoxProfile();
prof.setPreference("browser.startup.homepage_override.mstone", "ignore");
prof.setPreference("xpinstall.signatures.required", false);
prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false);
prof.setPreference("browser.startup.homepage", "about:blank");
prof.setPreference("startup.homepage_welcome_url", "about:blank");
prof.setPreference("startup.homepage_welcome_url.additional", "about:blank");
FirefoxDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get(appURL);
return driver;
}
@Parameters({ "browserType", "appURL" })
@BeforeClass
public void initializeTestBaseSetup(String browserType, String appURL) {
try {
setDriver(browserType, appURL);
} catch (Exception e) {
System.out.println("Error....." + e.getStackTrace());
}
}
@AfterClass
public void tearDown() {
driver.quit();
}
}