I am using selenium page factory. And while using any of the WebElements, I am receiving null pointer exception.
import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.testng.Assert; import org.testng.annotations.Test; import com.PagesUsingPageFactory.AddNewCustomerUsingPF; import com.PageswithoutPageFactory.HomePage; import com.PageswithoutPageFactory.InvokeBrowserSettings; import com.PageswithoutPageFactory.LoginPage; public class CreateNewCustomerNegative { WebDriver driver; @Test public void TC_02() throws Exception{ HomePage hompg = new HomePage(driver); AddNewCustomerUsingPF newcust = new AddNewCustomerUsingPF(driver); LoginPage loginpage = new LoginPage(driver); System.setProperty("webdriver.chrome.driver","C:\\Users\\Chinmay\\Downloads\\chromedriver_win32\\chromedriver.exe"); InvokeBrowserSettings invoke = new InvokeBrowserSettings(); driver = invoke.invokeBrowser("chrome", Constant.URL); loginpage.SignIntoAppWithValidUsrPwd(driver); //verify home page displayed after valid credentials hompg.validateHomePageLogo(driver); hompg.validateManagerButton(driver); hompg.validatenewCustomerButton(driver); hompg.clickNewCustomer(driver); //driver.findElement(By.xpath("//a[contains(text(),'New Customer')]")).click(); //check if add new customer tab is present Assert.assertTrue(driver.findElement(By.xpath("//p[contains(text(),'Add New Customer')]")).isDisplayed(), "Add new customer option is not visible"); //check if customer name textbox is present Assert.assertTrue(driver.findElement(By.name("name")).isDisplayed(), "Customer name text box is not presernt"); //name field blank validation System.out.println("driver=" + driver); newcust.typeCustomerName(""); } }
` Whenever I am using pagefactory for identifying objects, it throws nullpointer exception. The weird thing is the page factory works for first java file test case, when I use same page factory in another java file, it always fails with nullpointer exception. I saw some solution on stackoverflow Selenium java.lang.NullPointerException with PageFactory
However, it did not work for me. I tried initializing page object in my test case and also in my page object script. However, neither of it worked for me.
Here is the code for page factory :
package com.PagesUsingPageFactory; import org.apache.commons.lang3.RandomStringUtils; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.How; import org.openqa.selenium.support.PageFactory; public class AddNewCustomerUsingPF { public WebDriver driver; public AddNewCustomerUsingPF(WebDriver driver) { this.driver=driver; PageFactory.initElements(driver, this); } @FindBy(how=How.XPATH, using="//p[contains(text(),'Add New Customer')]") public WebElement addNewCustomerLabel; @FindBy(how=How.XPATH, using="//input[@type='text'][@name='name']") public WebElement customerNameTxtField; @FindBy(how=How.XPATH, using="//a[contains(text(),'New Customer')]") public WebElement newCustomerButton; public void typeCustomerName(String name) throws Exception { customerNameTxtField.sendKeys(name); } }
Please help me out. I am debigging this issue since more than a week and not able to find the solution.