python|Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)
本篇记录基于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 Selectclass 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="https://www.it610.com/article/pass"wb.save(f"..\\Reports\我爱古诗词UI测试_{t}.xlsx")
3.4执行结果 自动打开浏览器,跳转到登录页面并完成登录,自动输入页面信息并提交。
文章图片
自动生成excel测试结果
【python|Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)】
文章图片
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Python数据分析(一)(Matplotlib使用)
- Python|Python 9.20