gpt4 book ai didi

java - 使用 Selenium 单例驱动程序类是常见做法吗?

转载 作者:行者123 更新时间:2023-11-30 01:43:38 25 4
gpt4 key购买 nike

[初学者]与仅将驱动程序对象传递给方法相比,使用单例驱动程序类有哪些优点?常见做法是什么?

最佳答案

从技术上讲,您描述的两种方法都是单例的——记住,singleton is just defined by restricting the instantiation of a class to one object .

只要你只初始化 WebDriver一次,是否使用 WebDriver 的继承类实例并没有真正的区别。 ,或者如果您只是将其作为方法调用中的参数传递。

现在,您在问题描述中描述的内容与使用 WebDriver 的替代方法之间的区别继承(而不是作为参数传递)的基类中的类变量是一个不同的问题。您选择采用的方法取决于您使用 Selenium/自动化的上下文。

如果您正在维护一个包含多个页面对象、多个测试文件等的测试套件,那么 WebDriver类变量是一个很好的方法——这是使用WebDriver的好方法。对象既有效又以线程安全的方式。

但是,如果您只是根据需要运行一个很长的 Selenium 脚本,那么传递 WebDriver 就可以了。到您进行的每个方法调用中。如果您最终编写了许多必须执行此操作的脚本,那么维护可能会变得更加困难,这就是前面提到的类变量方法发挥作用的地方。

This repository显示了类变量方法的一个很好的示例,您不必担心传递 WebDriver进入您进行的每个方法调用。

base_test_fixture实现 WebDriver类变量,除了 setUp()tearDown()每次测试之前和之后运行的方法——这些方法处理初始化和销毁​​ WebDriver对象。

我喜欢这种方法,因为你可以通过WebDriver对象转换为 PageObject 类,PageObject 实例可以使用 WebDriver来执行方法。这种方法消除了必须使用 WebDriver 的问题作为所有方法中的参数。

对冗长的解释表示歉意——很难用几句话来分解测试架构,因此我尝试提供尽可能多的信息。

关于java - 使用 Selenium 单例驱动程序类是常见做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59020100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com