【问题标题】:Pass Webdriver from @Before hook to Cucumber step将 Webdriver 从 @Before 钩子传递到 Cucumber 步骤
【发布时间】:2020-05-16 01:01:19
【问题描述】:

我有这样的钩子

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 的 Step 类。 这有可能吗? 谢谢。

【问题讨论】:

    标签: java selenium cucumber hook


    【解决方案1】:

    是的,我的朋友。借助像黄瓜 picocontainer 这样的依赖注入,您可以将 Java 类的状态共享给其他类。请在下面找到参考链接。

    http://www.thinkcode.se/blog/2017/04/01/sharing-state-between-steps-in-cucumberjvm-using-picocontainer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      相关资源
      最近更新 更多