selenium - not able to acesss parent class object properties in child class in Java -


my question pretty straightforward have parent class , have created new driver object of webdriver class there in subclass able acess driver object value null not able acess object properties parent class

public class basetest {      public static  webdriver driver;     @beforetest     @parameters("browser")     public void  verifypagetitle(string browser)     {         if(browser.equalsignorecase("chrome")){             system.setproperty("webdriver.chrome.driver","c://chromedriver_win32(1)//chromedriver_win32//chromedriver.exe");              driver = new chromedriver();         }         if(browser.equalsignorecase("ie")){             system.setproperty("webdriver.ie.driver","c://iedriverserver_x64_3.3.0//iedriverserver.exe");             driver = new internetexplorerdriver();         }         driver.manage().window().maximize();     } } 

in sub-class code

public class signpagetest extends basetest{      signpage obj ;     boolean stu;     @test     public void navigatetosignpage(){     obj = new signpage(driver);     stu = obj.navigatetosignin();     }     @test(priority=2)     public void gethandles(){         stu = obj.handlingwindows();     }  } 

i getting null-pointer driver not initialized please tell me way acess objects properties of super-class

the moment make driver static able acess properties in other classes dont want static

the problem lies in test code.

you initialising webdriver instance via @beforetest annotated method. testng invokes @beforetest method once per <test> tag. below combination (which guessing have) cause nullpointerexception in @test methods of second class.

  • you have signpagetest extend basetest , lets have class called someflowtest extends basetest
  • you have created <test> includes both signpagetest , someflowtest.

this cause @beforetest executed once either signpagetest (or) someflowtest (depending upon order in occur in <test> tag), because both these classes extend same base class. once testng executes verifypagetitle() via signpagetest not execute same method via someflowtest , webdriver instance someflowtest null.

to fix problem change @beforetest either @beforeclass (gets executed once per test class) or @beforemethod (gets executed every @test method).


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -