I'm getting a java.lang.NullPointerException when running a test case via Selenium webDriver in Chrome (Page factory model)
Testcase:
package Google;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import org.testng.annotations.Test;
import Google.OpenGoogle;
public class TestNew {
@Test
public void f() throws InterruptedException {
WebDriver driver = BrowserHandler.BrowserFactory("Chrome");
OpenGoogle OpenGoogleobj = PageFactory.initElements(driver, OpenGoogle.class);
OpenGoogleobj.Googletext();
}
}
Pages:
package Google;
import java.security.PublicKey;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
public class OpenGoogle {
@FindBy(how = How.XPATH, using = ".//*[@id='lst-ib']")
WebElement search ;
static WebDriver driver;
public OpenGoogle (WebDriver driver)
{
this.driver = driver ;
}
public void Googletext() throws InterruptedException
{
Thread.sleep(4000);
search.sendKeys("Ankit");
}
BrowserHandler:
package Google;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class BrowserHandler {
public static WebDriver driver;
public static WebDriver BrowserFactory(String BrowserName) {
if(BrowserName.equals("Chrome"))
{
System.setProperty("webdriver.chrome.driver", "/Users/apple/eclipse-workspace/Selenium/src/Google/chromedriver");
ChromeDriver driver = new ChromeDriver() ;
driver.manage().window().maximize();
driver.get("https://google.com");
}
return driver;
}
}
TestNG message:
java.lang.NullPointerException
Note: After debugging i am getting problem at " search.sendkeys" m its takine me to some other inbuild class
[ testResult.setThrowable(ite.getCause());]
searchinitialized? I see it declared in your code, but it isn't initialized, so any attempt to use it is going to throw a Null Pointer Exception.