selenium - How can I pass this code successfully? Java Webdriver TestNg -


i want pass code other classes don't have keep pasting it.

this class containing code:

package utility;  import org.openqa.selenium.webdriver; import org.openqa.selenium.chrome.chromedriver; import org.openqa.selenium.firefox.firefoxdriver; import org.testng.annotations.parameters; import org.testng.annotations.test;  public class browsertype {     public static webdriver driver;      @parameters("browser")     @test     public static void callbrowser(string browser) {          if(browser.equalsignorecase("firefox")) {                driver = new firefoxdriver();            // if browser ie,               }else if (browser.equalsignorecase("chrome")) {                 // here setting path iedriver                {system.setproperty("webdriver.chrome.driver","c:/users/elsid/desktop/eclipse/selenium/chromedriver.exe");}                driver = new chromedriver();                driver.get(constant.url);            }       } } 

i want pass callbrowser setup below:

package automationframework;  import java.util.concurrent.timeunit;  import org.openqa.selenium.webdriver; import org.openqa.selenium.chrome.chromedriver; import org.openqa.selenium.firefox.firefoxdriver; import org.testng.annotations.aftermethod; import org.testng.annotations.beforemethod; import org.testng.annotations.parameters; import org.testng.annotations.test;  import utility.constant; import appmodule.signin_action;  public class signin {      public webdriver driver;    @beforemethod @parameters("browser") public void setup(string browser) {       if(browser.equalsignorecase("firefox")) {            driver = new firefoxdriver();        // if browser chrome,           }else if (browser.equalsignorecase("chrome")) {             { system.setproperty("webdriver.chrome.driver","c:/users/elsid/desktop/eclipse/selenium/chromedriver.exe");}           driver = new chromedriver();            { driver.manage().timeouts().implicitlywait(10, timeunit.seconds);}           {driver.manage().window().maximize();}            driver.get(constant.url);       }       }   @test public  void signin() {      signin_action.execute(driver, constant.devstudentusername, constant.devstudentpassword);        }    @aftermethod public void teardown() {     driver.quit();  }     } 

i tried calling static class, @beforemethod throwing configuration error, i'm sure doing wrong passing driver, , parameters.

can please explain changes need make both classes make work correctly?

these errors:

failed configuration: @aftermethod teardown java.lang.nullpointerexception     @ automationframework.signin.teardown(signin.java:38)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ org.testng.internal.methodinvocationhelper.invokemethod(methodinvocationhelper.java:84)     @ org.testng.internal.invoker.invokeconfigurationmethod(invoker.java:564)     @ org.testng.internal.invoker.invokeconfigurations(invoker.java:213)     @ org.testng.internal.invoker.invokemethod(invoker.java:786)     @ org.testng.internal.invoker.invoketestmethod(invoker.java:901)     @ org.testng.internal.invoker.invoketestmethods(invoker.java:1231)     @ org.testng.internal.testmethodworker.invoketestmethods(testmethodworker.java:127)     @ org.testng.internal.testmethodworker.run(testmethodworker.java:111)     @ org.testng.testrunner.privaterun(testrunner.java:767)     @ org.testng.testrunner.run(testrunner.java:617)     @ org.testng.suiterunner.runtest(suiterunner.java:334)     @ org.testng.suiterunner.runsequentially(suiterunner.java:329)     @ org.testng.suiterunner.privaterun(suiterunner.java:291)     @ org.testng.suiterunner.run(suiterunner.java:240)     @ org.testng.suiterunnerworker.runsuite(suiterunnerworker.java:52)     @ org.testng.suiterunnerworker.run(suiterunnerworker.java:86)     @ org.testng.testng.runsuitessequentially(testng.java:1224)     @ org.testng.testng.runsuiteslocally(testng.java:1149)     @ org.testng.testng.run(testng.java:1057)     @ org.testng.remote.remotetestng.run(remotetestng.java:111)     @ org.testng.remote.remotetestng.initandrun(remotetestng.java:204)     @ org.testng.remote.remotetestng.main(remotetestng.java:175)  failed: signin java.lang.nullpointerexception     @ appmodule.signin_action.execute(signin_action.java:27)     @ automationframework.signin.signin(signin.java:33)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ org.testng.internal.methodinvocationhelper.invokemethod(methodinvocationhelper.java:84)     @ org.testng.internal.invoker.invokemethod(invoker.java:714)     @ org.testng.internal.invoker.invoketestmethod(invoker.java:901)     @ org.testng.internal.invoker.invoketestmethods(invoker.java:1231)     @ org.testng.internal.testmethodworker.invoketestmethods(testmethodworker.java:127)     @ org.testng.internal.testmethodworker.run(testmethodworker.java:111)     @ org.testng.testrunner.privaterun(testrunner.java:767)     @ org.testng.testrunner.run(testrunner.java:617)     @ org.testng.suiterunner.runtest(suiterunner.java:334)     @ org.testng.suiterunner.runsequentially(suiterunner.java:329)     @ org.testng.suiterunner.privaterun(suiterunner.java:291)     @ org.testng.suiterunner.run(suiterunner.java:240)     @ org.testng.suiterunnerworker.runsuite(suiterunnerworker.java:52)     @ org.testng.suiterunnerworker.run(suiterunnerworker.java:86)     @ org.testng.testng.runsuitessequentially(testng.java:1224)     @ org.testng.testng.runsuiteslocally(testng.java:1149)     @ org.testng.testng.run(testng.java:1057)     @ org.testng.remote.remotetestng.run(remotetestng.java:111)     @ org.testng.remote.remotetestng.initandrun(remotetestng.java:204)     @ org.testng.remote.remotetestng.main(remotetestng.java:175)   ===============================================     default test     tests run: 1, failures: 1, skips: 0     configuration failures: 1, skips: 0 ===============================================   =============================================== suite total tests run: 1, failures: 1, skips: 0 configuration failures: 1, skips: 0 =============================================== 

this how trying call code:

public webdriver driver;    @beforemethod @parameters("browser") public void setup(string browser) {       browsertype.callbrowser(browser);       }  

your issue driver not initialized when call teardown. need make sure initialized in cases. go through code debugger , check make sure when hit setup , teardown method driver in fact initialized @ setup , exists @ tear down. have 2 drivers present when things run. 1 static driver declare in first part of code, , have non-static driver located actual tests. fix may causing issues.

the easiest way solve issue make sure driver initialized during setup, if string not match either option.

public void setup(string browser) {       if(browser.equalsignorecase("firefox")) {            driver = new firefoxdriver();        // if browser chrome,           }else {             system.setproperty("webdriver.chrome.driver","c:/users/elsid/desktop/eclipse/selenium/chromedriver.exe");           driver = new chromedriver();            { driver.manage().timeouts().implicitlywait(10, timeunit.seconds);}           {driver.manage().window().maximize();}            driver.get(constant.url);       } }  

Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -