本篇記錄基于Python+Selenium.webdriver實作WEB端UI自動化測驗,其中測驗用例使用excel維護,為了在實際專案種的擴展應用,建議學習webdriver的元素定位方法,歡迎在評論區溝通討論,
1.專案選取(登錄頁無驗證碼校驗的專案)
該示例選取的是登錄頁不需要輸入驗證碼校驗的基礎頁面(考慮到現在大部分專案都是需要進行驗證碼校驗的,后面研究后再出一篇相關的分享,)
2.環境搭建
2.1安裝Python
官網目前已經更新到python3.9.7,大家可以到官網下載并安裝
安裝包地址:Welcome to Python.org
2.2安裝Selenium
命令:pip install selenium
或使用pycharm安裝
2.3安裝瀏覽器驅動
1.以Google Chrome瀏覽器為例,打開瀏覽器--幫助--關于Google Chrome,查看瀏覽器版本,
2.訪問http://chromedriver.storage.googleapis.com/index.html,下載瀏覽器對應版本號的驅動軟體,
3.驅動檔案放到python的安裝目錄下(和python.exe相同目錄),
3.專案示例

3.1測驗資料
包括編號、用例描述、元素定位方法及對應資料,定位到元素后的操作方法及資料,

3.2 通用腳本代碼(可復用)
示例腳本:Selenium_UI_Test.py
from selenium import webdriver
from selenium.webdriver.support.select import Select
class Selenium_UI_Test01(object):
"""
1.8種元素定位方法
2.quit()-退出,關閉所有標簽頁;
3.refresh()-瀏覽器重繪
"""
def selemium_find_element(self,driver,method,data):
if method == "find_element_by_id":
return driver.find_element_by_id(data)
elif method == "find_element_by_name":
return driver.find_element_by_name(data)
elif method == "find_element_by_class_name":
return driver.find_element_by_class_name(data)
elif method == "find_element_by_tag_name":
return driver.find_element_by_tag_name(data)
elif method =="find_element_by_link_text":
return driver.find_element_by_link_text(data)
elif method == "find_element_by_partial_link_text":
return driver.find_element_by_partial_link_text(data)
elif method == "find_element_by_xpath":
return driver.find_element_by_xpath(data)
elif method == "":
return driver.find_element_by_css_selector(data)
elif method =='refresh':
return driver.refresh()
elif method =='quit':
return driver.quit()
else:
print("請檢查元素定位方法是否正確!")
#定位到元素后可執行的操作
#1.點擊和輸入:clear()-清空輸入框、click()-點擊、send_keys()-發送關鍵字
def operator_element(self,element,method,data):
if "click" in method:
element.click()
elif "send_keys" in method:
element.send_keys(data)
elif "clear" in method:
element.clear()
elif 'select' in method:
Select(element).select_by_index(data)
else:
print("請檢查操作方法是否正確!")
3.3測驗用例腳本
示例腳本:
Selenium_UI_Test_gsc.py
讀取excel中的測驗用例,呼叫通用腳本中定義的方法,執行測驗用例,
from openpyxl import load_workbook
from selenium import webdriver
import common.Selenium_UI_Test as SUT
sut = SUT.Selenium_UI_Test01()
import time
t = time.strftime("%Y%m%d%H%M")
driver = webdriver.Chrome()
driver.get("https://www.52shici.com/")
wb = load_workbook("..\\datas\我愛古詩詞UI測驗.xlsx")
ws = wb.worksheets[0]
for row in ws.iter_rows(min_row=2,max_row=ws.max_row):#跳過首行表頭資訊
method1= row[2].value
data1 = row[3].value
method2 = row[4].value
data2 = row[5].value
element = sut.selemium_find_element(driver,method1,data1)
result=sut.operator_element(element,method2,data2)
row[6].value="pass"
wb.save(f"..\\Reports\我愛古詩詞UI測驗_{t}.xlsx")
3.4執行結果
自動打開瀏覽器,跳轉到登錄頁面并完成登錄,自動輸入頁面資訊并提交,

自動生成excel測驗結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/302789.html
標籤:python
