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].valuedata1 = row[3].valuemethod2 = row[4].valuedata2 = row[5].valueelement = 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测试结果
Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)相关推荐
- Python+selenium自动获取Web端斗鱼直播信息
环境准备 Python 谷歌浏览器或其他浏览器的Driver驱动,最好设置下环境变量(全局驱动),或者使用局部的驱动也可以 安装 selenium库 实现 打开浏览器 定位元素 打开页面调试,即可发现 ...
- 关于Web端-UI自动化测试
在手工测试阶段,针对项目输出了测试用例,如果这些测试用例需要在版本迭代的过程中,需要进行回归测试,通过手工重复地执行测试用例,将会耗费大量的人力. 为此应运而生就有了自动化测试,通过使用自动化工具,将 ...
- pythonwebui自动化_python+selenium实现web端UI自动化测试
代码示例:css #!/usr/bin/python # -*- coding: UTF-8 -*- # coding:utf8 import sys import os from selenium ...
- docker+robot framework+selenium并发web应用UI自动化测试实践
自己在日常测试中,会搭建UI自动化测试框架来进行web应用的回归测试,在这过程中遇到了许多问题,如测试脚本和执行机不分离,串行测试效率低下,环境搭建麻烦等问题.在这个过程中,自己也在网上看一些前辈的搭 ...
- 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联
文章目录 关联 (公共变量传递一些值) 基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍 基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作 基于J ...
- python 模拟浏览器selenium_使用python selenium webdriver模拟浏览器
原博文 2016-12-18 18:26 − selenium是进行web自动化测试的一个工具,支持C,C++,Python,Java等语言,他能够实现模拟手工操作浏览器,进行自动化,通过webdri ...
- Selenium在Firefox浏览器中UI自动化测试环境搭建
Selenium: Selenium IDE:是Firefox的扩展插件,支持用户录制和回放测试 Selenium WebDriver:提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发 ...
- IM场景的移动端UI自动化测试平台实践
在公司做了两三年IM平台开发,基本上把IM的所有能力都搭建齐全了:单聊.群聊.文本消息.语音消息.视频消息.卡片消息.音视频通话等,而且把整个聊天页面各个区域都开放了出去.整个IM系统的框架以及开发流 ...
- Web UI自动化测试实例(登录网易云音乐账户)——(五)Taiko
初步想法:用Taiko自动化工具,实现登录太简单了吧! 一.对taiko的认识 初识taiko: 自动化测试工具-----Taiko taiko的安装:可能踩如下坑,那些年的坑之node.js 和 t ...
最新文章
- CMenu类的使用方法
- 乘法器之五(混和式乘法器(Hybrid multiplication))
- High Logic MainType 10中文版
- MySQL8.0.x 版本安装步骤傻瓜式教程【官方版】
- 宝藏新品牌成长白皮书:新品牌心智与营销增长方法论
- django生产环境部署
- 连接池配置oracle aix,一次AIX系统swap使用过高的故障解决过程
- [Unity3D]自己动手重制坦克舰队ArmadaTank
- 更新macOS Big Sur系统后,Parallels Desktop打不开怎么办?教你解决方法!
- (转)国外 RPA 企业盘点:谁是领导者,谁是挑战者
- 飞利浦 f718 java 微信_第一次使用飞利浦F718手机感觉怎么样及优缺点
- SQL 笛卡尔积现象
- MATLAB画旋转曲面1
- 【5】数据结构与算法--- 算法 进阶
- 期末总结——Spark
- 讨论JAVA和QT之争
- Win10企业版激活
- 门禁信息推送不了服务器,十牛校园门禁系统封闭化管理不封闭消息
- 华中科技大学计算机上机,华中科技大学_2010___考研计算机_复试上机
- 推特营销引流入门指南
热门文章
- 网友自制华硕Eee PC信封版广告
- 表的内连接、外连接、自连接、自然联接到底是什么?
- mysql中外键设置级联删除_MySQL中利用外键实现级联删除、更新
- Vue “npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed”
- 作为产品经理,你都是怎样思考问题的?
- 达梦数据库简单sql语句
- 祈祷09新年的钟声。。。
- python SyntaxError: Non-ASCII character '\xe4' in file
- 互联网对医疗健康领域的赋能
- HL-340 usb转串口线驱动