i m using intelliJ fo jus open browser and check for logo with POM , but getting null pointer error.
package SanityCases.drivers;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
public class MyChromeDriver
{
private static WebDriver driver;
private static final int IMPLICIT_WAIT = 10;
public static synchronized WebDriver getChromeDriver ()
{
if (driver == null)
{
//This is for "Allowing Camera & Geolocation" in Chrome
// Map<String, Object> prefs = new HashMap<>();
Map<String, Object> prefs = new HashMap<String, Object>();
//Map<String, Object> prefs = new HashMap<String, Object>();
//Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.geolocation",1);
prefs.put("profile.default_content_setting_values.media_stream_camera",1);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
//Below is path to the ChromeDriver
System.setProperty("webdriver.chrome.driver", ClassLoader.getSystemClassLoader().getResource("drivers/chromedriver.exe").getPath());
//"Options" in the brackets should be visible due to above Camera and Geolocation
driver = new ChromeDriver(options);
driver.manage().deleteAllCookies();
driver.manage().timeouts().implicitlyWait(IMPLICIT_WAIT, TimeUnit.SECONDS);
driver.manage().window().maximize();
}
return driver;
}
public static void quitChromeDriver ()
{
if (driver != null) {
driver.quit();
driver = null;
}
}
}
public class PublicPage extends PageFactory
{
@FindBy(xpath = "//*[@id=\"viewcontainer\"]/div/div[2]/div[1]/div[1]/div[1]/img")
private WebElement logo;
public PublicPage()
{
initElements(getChromeDriver(), this);
openPage();
}
public PublicPage openPage()
{
getChromeDriver().get(URL);
WebDriverWait wait = new WebDriverWait(getChromeDriver(), 20);
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id=\"viewcontainer\"]/div/div[2]/div[1]/div[1]/div[2]")));
Assertions.assertTrue(logo.isDisplayed());
return this;
}
}
public class PublicPage extends PageFactory
{
@FindBy(xpath = "//*[@id=\"viewcontainer\"]/div/div[2]/div[1]/div[1]/div[1]/img")
private WebElement logo;
public PublicPage()
{
initElements(getChromeDriver(), this);
openPage();
}
public PublicPage openPage()
{
getChromeDriver().get(URL);
WebDriverWait wait = new WebDriverWait(getChromeDriver(), 20);
wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id=\"viewcontainer\"]/div/div[2]/div[1]/div[1]/div[2]")));
Assertions.assertTrue(logo.isDisplayed());
return this;
}
}