将 Webdriver 从 @Before 挂钩传递到 Cucumber 步骤
Pass Webdriver from @Before hook to Cucumber step
我有这样的钩子
public class GeneralHook {
DriverManager driverManager;
WebDriver driver;
ConfigFileReader configFileReader = new ConfigFileReader();
@Before
public void before(Scenario scenario) {
System.out.println("Hook before");
String browser = System.getProperty("BROWSER");
if (browser == null) {
browser = System.getenv("BROWSER");
if (browser == null) {
browser = "chrome";
}
}
switch (browser) {
case "firefox":
driverManager = DriverManagerFactory.getManager(DriverType.FIREFOX);
driver = driverManager.getDriver();
driver.get(configFileReader.getApplicationUrl());
break;
case "chrome":
default:
driverManager = DriverManagerFactory.getManager(DriverType.CHROME);
driver = driverManager.getDriver();
driver.get(configFileReader.getApplicationUrl());
break;
}
}
我需要将驱动程序从这个钩子传递到 Cucumber 的步骤 class。
这有可能吗?
谢谢。
是的,我的朋友。借助像 Cucumber picocontainer 这样的依赖注入,您可以将 Java class 的状态共享给其他 classes。请在下面找到参考 link。
我有这样的钩子
public class GeneralHook {
DriverManager driverManager;
WebDriver driver;
ConfigFileReader configFileReader = new ConfigFileReader();
@Before
public void before(Scenario scenario) {
System.out.println("Hook before");
String browser = System.getProperty("BROWSER");
if (browser == null) {
browser = System.getenv("BROWSER");
if (browser == null) {
browser = "chrome";
}
}
switch (browser) {
case "firefox":
driverManager = DriverManagerFactory.getManager(DriverType.FIREFOX);
driver = driverManager.getDriver();
driver.get(configFileReader.getApplicationUrl());
break;
case "chrome":
default:
driverManager = DriverManagerFactory.getManager(DriverType.CHROME);
driver = driverManager.getDriver();
driver.get(configFileReader.getApplicationUrl());
break;
}
}
我需要将驱动程序从这个钩子传递到 Cucumber 的步骤 class。 这有可能吗? 谢谢。
是的,我的朋友。借助像 Cucumber picocontainer 这样的依赖注入,您可以将 Java class 的状态共享给其他 classes。请在下面找到参考 link。