继续优化上一篇博客的设计
Selenium Web自动化Page Object设计模式——driver初始化
https://www.cnblogs.com/Ravenna/p/14172411.html
假设现在的需求是,测试用例需要循环执行,每次执行需要打开的url都不同
原先的代码如下:
class InitPage:
def __init__(self, driver_flag:bool = False)
if not flag:
self.driver = webdriver.Chrome()
self.driver.get("https://www.一个网页.com/")
else:
self.driver = driver_flag
在这段代码中,如果通过driver.get打开的url需要传入一个变量才能使其有效,比如:
self.driver.get(f"https://www.一个网页{变量1}.com/")
当需要循环的次数非常小时,可以仅靠通过新建多个case来实现该功能。
若不考虑新建多个case的情况,在原有程序上做修改的话,把启动浏览器的代码放在初始页面的init方法中会导致许多问题,比如:
在链式调用FirstPage().first_click().second_click().third_pass()的最后一个方法中,
如果return到其他class中并传入self.driver参数,下一次循环的用例就不会调用driver.get方法打开新页面,导致下一次用例无法查找到其对应的元素。
如果在re