步骤:
1. 对selenium进行二次封装,创建关键字的库
2. 准备一个表格文件来写入所有测试用例步骤
3. 对表格内容进行读取,使用映射关系来对用例进行调用执行
4. 执行用例
1. 对selenium进行二次封装,创建关键字的库
from time import sleep
from selenium import webdriverclass Key:def __init__(self):self.driver = webdriver.Chrome()# 浏览器操作------------------------------------------------------------------def open(self, txt):# 打开网址self.driver.get(txt)# 最大化浏览器窗口self.driver.maximize_window()# 隐式等待10秒self.driver.implicitly_wait(10)def quit(self):# 退出浏览器self.driver.quit()def sleep(self, txt):# 强制等待sleep(txt)# 元素操作函数-----------------------------------------------------------------def input(self, txt, value, name="xpath"):# 输入el = self.driver.find_element(name, value)el.send_keys(txt)def click(self, value, name="xpath"):# 点击el = self.driver.find_element(name, value)el.click()
2. 创建一个表格,写入测试步骤
将表格放入项目任意路径下,记住路径,待会读取文件需要用到,我这里是放在这里
解释一下:(定位方法)为空,是因为关键字方法封装时,已经带上了默认参数
3. 写一个excel表格读取方法,对表格内容进行读取,使用映射关系来对用例进行调用执行。
看注释就明白是啥意思了
import os
import openpyxl
from UI.Base.selenium_key import Key# 获取该路径“../TestExampleExcel”模板下所有xlsx文件
filenames = os.listdir(r"../TestExampleExcel")# 实例化驱动
wd = Key()# 遍历所有xlsx文件
for i in filenames:excel = openpyxl.load_workbook(f'../TestExampleExcel/{i}')# 获取全部sheet页,遍历sheet页执行不同sheet页中的用例for name in excel.sheetnames:sheet = excel[name]print(f"正在执行{i}文件中的{name}用例")# 打印每一行表格数据for values in sheet.values:# 如果excel表格的第三列不是int类型,则不打印。if isinstance(values[2], int):data = {}data['name'] = values[4]data['value'] = values[5]data['txt'] = values[6]# 将字典中的None值给去除掉for k in list(data.keys()):if data[k] is None:del data[k]print(f"正在执行:{values[1]}")getattr(wd, values[3])(**data)
4. 执行用例
执行Excel文件读取方法即可
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。