步驟:
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文件讀取方法即可