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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM