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
Post a Comment