黄瓜:初始化然后在步定义之间传递数据?

时间:2019-11-26 18:54:51

标签: java selenium cucumber

尝试在步骤定义之间共享信息。

问题是使用pico-container的方式对我不起作用....

我需要“初始/基本”步骤定义的PARENT来进行初始化和设置上下文数据。 然后,另一个步骤定义应重用这些变量。

  

我无法更改jar中的PARENT类。

也只有一个StepDefinition文件可以扩展PARENT,因为它还有其他无法重复的内容(对于一个文件,我不应该在每个步骤定义中都重新创建webdriver)。

这是伪示例:

class PARENT { //... init selenium webdriver ..
  WebDriver driver = new ....;
}

class StepDef1 extends PARENT {

   StepDef1(Context ctx) {
      ctx.driver = this.driver
   }

}

class StepDef2  {
   WebDriver driver;
   StepDef2(Context ctx) {
      this.driver = ctx.driver
   }
}


class StepDef3  {
   WebDriver driver;
   StepDef3(Context ctx) {
      this.driver = ctx.driver
   }
}

我该如何进行这项工作?

1 个答案:

答案 0 :(得分:1)

您需要将Webdriver设置为public,并为其分配null值。这样,您就可以做到。

    class PARENT { //... init selenium webdriver ..
         public WebDriver driver = null;
    }