QA|4个数据打开了4个页面,怎么实现只打开一个页面?单例模式|网页计算器自动化测试实战

发布时间 2023-06-09 15:16:38作者: T-Better

如下图,代码中4个数据,产生了4个页面,怎么实现只打开一个页面?可使用单例模式

 查询得知 单例模式实现有5种方法,参照链接下:

https://blog.csdn.net/SixStar_FL/article/details/126894579

1. 使用模块
2. 使用装饰器
3. 使用类
4. 基于 __new__ 方法实现
5.基于 metaclass 方式实现

这里我们是用装饰器方法,代码如下:

 1 def singledriver(cls,*args,**kw):
 2     instances = {}
 3     def _singledriver():
 4         if cls not in instances:
 5             instances[cls] = cls(*args,**kw)
 6         return instances[cls]
 7     return _singledriver
 8 
 9 @singledriver
10 class SingleDriver():
11     """driver单例"""
12     def __init__(self):
13         self.driver = webdriver.Firefox()
14 
15 class BasePage():
16     """基类 用作初始化 封装常用操作"""
17 
18     def __init__(self):
19         """
20         初始化driver
21         """
22         self.driver = SingleDriver().driver
basepage.py

 分析如下:

1、