Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不使用WebDriver静态实例的情况下设计一个框架?_Java_Selenium_Cucumber - Fatal编程技术网

Java 如何在不使用WebDriver静态实例的情况下设计一个框架?

Java 如何在不使用WebDriver静态实例的情况下设计一个框架?,java,selenium,cucumber,Java,Selenium,Cucumber,我正在使用Cucumber+Selenium框架测试一个web应用程序。目前,我使用webdriver类的静态实例在所有页面/挂钩类中使用相同的驱动程序实例。但我知道使用驱动程序对象的静态实例不是一个好的实践。因此,我的问题是如何在不使用驱动程序静态实例的情况下实现良好的框架设计。非常感谢你的帮助 其他信息: 我用的是黄瓜+硒 我有一个基类,在其中我实例化了WebDriver对象 所有我的页面类和钩子/背景类都在扩展基类 您正在寻找一种在步骤之间共享状态的方法。使用webdriver的一个静态实

我正在使用Cucumber+Selenium框架测试一个web应用程序。目前,我使用webdriver类的静态实例在所有页面/挂钩类中使用相同的驱动程序实例。但我知道使用驱动程序对象的静态实例不是一个好的实践。因此,我的问题是如何在不使用驱动程序静态实例的情况下实现良好的框架设计。非常感谢你的帮助

其他信息:

  • 我用的是黄瓜+硒
  • 我有一个基类,在其中我实例化了WebDriver对象
  • 所有我的页面类和钩子/背景类都在扩展基类

  • 您正在寻找一种在步骤之间共享状态的方法。使用webdriver的一个静态实例并不一定是一种不好的方法

    不过,这也意味着您在场景之间共享状态。这意味着您必须在每个场景之前清理webdriver。场景之间的任何状态共享都会阻止您并行运行场景

    要在步骤之间共享状态,而不在场景之间共享状态,可以使用依赖项注入。比如说

    
    [...]
    黄瓜
    

    是否基于页面对象模型?设计模式?是的,它也基于页面对象模型。