///
`public class ApplicationHooks {
private DriverFactory driverFactory;
private WebDriver driver;
private ConfigReader configReader;
Properties prop;
@Before(order=0)
public void getProperty() {
configReader = new ConfigReader();
prop = configReader.init_prop();
}
@Before(order=1)
public void launchBrowser() throws Exception {
String browserName= prop.getProperty("browser");
driverFactory = new DriverFactory();
driver= driverFactory.init_driver(browserName);
}
}`
///
public class DriverFactory {
public WebDriver driver;
public static ThreadLocal<WebDriver> tlDriver= new ThreadLocal<WebDriver>();
public WebDriver init_driver(String browser) throws Exception {
System.out.println("brower value is "+ browser);
if(browser.equals("chrome")) {
Runtime.getRuntime().exec("taskkill /F /IM chrome.exe");
Runtime.getRuntime().exec("taskkill -f -im chromedriver.exe");
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/Driver/chromedriver_V124.exe");
ChromeOptions options= new ChromeOptions();
options.addArguments("--remote-debugging-port=9222");
options.addArguments("--no-sandbox");
options.addArguments("--start-maximized");
options.addArguments("--remote-allow-origins=*");
driver =new ChromeDriver(options);
tlDriver.set(driver);
}
else {
System.out.println("Please pass the correct browser value");
}
return getDriver();
}
public static synchronized WebDriver getDriver() {
return tlDriver.get();
}
}
///
public class sessionDetailsStepDef {
private ViewSingleOrderMethods viewSingleOrderMethods = new ViewSingleOrderMethods(DriverFactory.getDriver());
@Given("Advisor will open abc applcation")
public void advisor_will_open_abc_applcation() {
System.out.println("In 1st step");
DriverFactory.getDriver().get("https:google.com");
}
///
[31mio.cucumber.core.exception.CucumberException: Failed to instantiate class stepDefinitions.sessionDetailsStepDef
at io.cucumber.core.backend.DefaultObjectFactory.cacheNewInstance(DefaultObjectFactory.java:67)
at io.cucumber.core.backend.DefaultObjectFactory.getInstance(DefaultObjectFactory.java:45)
at io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:47)
at io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:29)
at io.cucumber.core.runner.CoreStepDefinition.execute(CoreStepDefinition.java:66)
at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
at io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)
at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:81)
at io.cucumber.core.runner.TestStep.run(TestStep.java:53)
at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:51)
at io.cucumber.core.runner.TestCase.run(TestCase.java:84)
at io.cucumber.core.runner.Runner.runPickle(Runner.java:75)
at io.cucumber.junit.PickleRunners$NoStepDescriptions.lambda$run$0(PickleRunners.java:151)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:136)
at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:136)
at io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:148)
at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:144)
at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:28)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at io.cucumber.junit.FeatureRunner.run(FeatureRunner.java:137)
at io.cucumber.junit.Cucumber.runChild(Cucumber.java:196)
at io.cucumber.junit.Cucumber.runChild(Cucumber.java:89)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runFeatures$6(CucumberExecutionContext.java:147)
at io.cucumber.core.runtime.CucumberExecutionContext.execute(CucumberExecutionContext.java:162)
at io.cucumber.core.runtime.CucumberExecutionContext.runFeatures(CucumberExecutionContext.java:145)
at io.cucumber.junit.Cucumber$StartAndFinishTestRun.evaluate(Cucumber.java:226)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at io.cucumber.core.backend.DefaultObjectFactory.cacheNewInstance(DefaultObjectFactory.java:53)
… 45 more
Caused by: java.lang.IllegalArgumentException: Cannot find elements when the link text is null.
at org.openqa.selenium.internal.Require$ArgumentChecker.nonNull(Require.java:207)
at org.openqa.selenium.By$ByLinkText.(By.java:207)
at org.openqa.selenium.By.linkText(By.java:57)
at com.pages.ViewSingleOrderMethods.(ViewSingleOrderMethods.java:14)
at stepDefinitions.sessionDetailsStepDef.(sessionDetailsStepDef.java:13)
… 50 more
1