1. 对selenium进行二次封装,创建关键字的库
2. 准备一个表格文件来写入所有测试用例步骤
3. 对表格内容进行读取,使用映射关系来对用例进行调用执行
4. 执行用例
- 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()
将表格放入项目任意路径下,记住路径,待会读取文件需要用到,我这里是放在这里
解释一下:(定位方法)为空,是因为关键字方法封装时,已经带上了默认参数
- 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
- 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
- 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
- 分享他们的经验,还会分享很多直播讲座和技术沙龙
- 可以免费学习!划重点!开源的!!!
- qq群号:110685036
看注释就明白是啥意思了
- 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)
执行Excel文件读取方法即可
如果有写的不好的地方,请大家多多指教。如果有其他想法,也欢迎在评论区和我交流。