On running single class it run's fine but when i run two classes of (Login and Home page) it throws null pointer exception, it seem's that something has gone wrong for the second class, Kindly help me to solve this, Thanks in advance.
package Utilities;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Browserfctry {
public static WebDriver startApplication(WebDriver dr, String browsername, String url)
{
if (browsername.equals("chrome")) {
System.setProperty("webdriver.chrome.driver", "/home/ibrahim/eclipse-workspace/chromedriver");
dr = new ChromeDriver();
} else if (browsername.equals("firefox")) {
System.setProperty("webdriver.gecko.driver", "/home/ibrahim/eclipse-workspace/geckodriver");
dr = new FirefoxDriver();
} else {
System.out.println("we do not support this browser");
}
dr.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
dr.manage().window().maximize();
dr.get(url);
dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return dr;
}
}
What I have tried:
My base class:
package Pages;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.BeforeSuite;
import Utilities.Browserfctry;
public class BaseClass {
public WebDriver dr;
@BeforeSuite
public void start() {
dr = Browserfctry.startApplication(dr, "chrome", "http://192.168.11.92:3003");
}
}
My home page class
package Pages;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class HomePageTR {
WebDriver driver;
public HomePageTR(WebDriver dr) {
this.driver = dr;
}
@FindBy(xpath = "//span[@class='glyphicon glyphicon-th']")
WebElement Homemenuicon;
@FindBy(xpath = "//span[@class='glyphicon glyphicon-user']")
WebElement Profileicon;
@FindBy(xpath = "//span[@class='glyphicon glyphicon-cog']")
WebElement Settingsicon;
@FindBy(xpath = "//span[@class='glyphicon glyphicon-off']")
WebElement Logouticon;
@FindBy(xpath = "//span[@class='glyphicon glyphicon-menu-left']")
WebElement Sidemenucollider;
@FindBy(xpath = "//li[@data-section='dataset']")
WebElement SDMDataAccessicon;
@FindBy(xpath = "//li[@data-section='metadataWizard']")
WebElement SDMMetadataicon;
@FindBy(xpath = "//li[@data-section='analysisWizard']")
WebElement SDMMotifexplorericon;
@FindBy(xpath = "(//img)[@src='/images/home/library.png'][1]")
WebElement SDMMotiflibrary;
@FindBy(xpath = "//li[@data-section='dashboardSelect']")
WebElement SDMDashboards;
@FindBy(xpath = "//a[@data-section='dataset']")
WebElement Dataaccessicon;
@FindBy(xpath = "//a[@data-section='metadataWizard']")
WebElement Metadataicon;
@FindBy(xpath = "//a[@data-section='analysisWizard']")
WebElement Motifexplorericon;
@FindBy(xpath = "//a[@data-section='browser']")
WebElement Motiflibraryicon;
@FindBy(xpath = "//a[@data-section='dashboardSelect']")
WebElement Dashboardicon;
@FindBy(xpath = "//a[@data-name='dataAccess']")
WebElement dataaccesrfrnc;
@FindBy(xpath = "//div[@class='main-menu-logo']")
WebElement Logo;
@FindBy(xpath = "//div[@class='row icon-row']")
WebElement d1;
public String dataiconchk() throws InterruptedException {
Thread.sleep(3000);
System.out.println(d1.isDisplayed());
System.out.println(Dataaccessicon.isDisplayed());
System.out.println("dataicon reached");
Dataaccessicon.click();
System.out.println("datacliked");
String chumma = dataaccesrfrnc.getText();
return chumma;
}
}
My home page Test case
package Testcases;
import org.openqa.selenium.support.PageFactory;
import org.testng.Assert;
import org.testng.annotations.Test;
import Pages.BaseClass;
import Pages.HomePageTR;
public class HomePageTestTR extends BaseClass {
HomePageTR homepagetr;
@Test(priority = 6)
public void dataiconchk() throws InterruptedException {
homepagetr = PageFactory.initElements(dr, HomePageTR.class);
String dataaccessheader = homepagetr.dataiconchk();
Assert.assertEquals(dataaccessheader, "Data Access");
System.out.println("data acces icon checked");
}
}
My error:
dataiconchk
java.lang.NullPointerException
at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
at com.sun.proxy.$Proxy8.isDisplayed(Unknown Source)
at Pages.HomePageTR.dataiconchk(HomePageTR.java:77)
at Testcases.HomePageTestTR.dataiconchk(HomePageTestTR.java:18)
... Removed 25 stack frames