pythonUI自动化之关键字+excel表格数据驱动
步骤:
1. 对selenium进行二次封装,创建关键字的库
2. 准备一个表格文件来写入所有测试用例步骤
3. 对表格内容进行读取,使用映射关系来对用例进行调用执行
4. 执行用例
1. 对selenium进行二次封装,创建关键字的库
from time import sleep from selenium import webdriver class 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文件读取方法即可
分类:
PythonUI自动化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现