本篇记录基于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自动化测试(实例脚本)相关推荐

  1. Python+selenium自动获取Web端斗鱼直播信息

    环境准备 Python 谷歌浏览器或其他浏览器的Driver驱动,最好设置下环境变量(全局驱动),或者使用局部的驱动也可以 安装 selenium库 实现 打开浏览器 定位元素 打开页面调试,即可发现 ...

  2. 关于Web端-UI自动化测试

    在手工测试阶段,针对项目输出了测试用例,如果这些测试用例需要在版本迭代的过程中,需要进行回归测试,通过手工重复地执行测试用例,将会耗费大量的人力. 为此应运而生就有了自动化测试,通过使用自动化工具,将 ...

  3. pythonwebui自动化_python+selenium实现web端UI自动化测试

    代码示例:css #!/usr/bin/python # -*- coding: UTF-8 -*- # coding:utf8 import sys import os from selenium ...

  4. docker+robot framework+selenium并发web应用UI自动化测试实践

    自己在日常测试中,会搭建UI自动化测试框架来进行web应用的回归测试,在这过程中遇到了许多问题,如测试脚本和执行机不分离,串行测试效率低下,环境搭建麻烦等问题.在这个过程中,自己也在网上看一些前辈的搭 ...

  5. 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联

    文章目录 关联 (公共变量传递一些值) 基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍 基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作 基于J ...

  6. python 模拟浏览器selenium_使用python selenium webdriver模拟浏览器

    原博文 2016-12-18 18:26 − selenium是进行web自动化测试的一个工具,支持C,C++,Python,Java等语言,他能够实现模拟手工操作浏览器,进行自动化,通过webdri ...

  7. Selenium在Firefox浏览器中UI自动化测试环境搭建

    Selenium: Selenium IDE:是Firefox的扩展插件,支持用户录制和回放测试 Selenium WebDriver:提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发 ...

  8. IM场景的移动端UI自动化测试平台实践

    在公司做了两三年IM平台开发,基本上把IM的所有能力都搭建齐全了:单聊.群聊.文本消息.语音消息.视频消息.卡片消息.音视频通话等,而且把整个聊天页面各个区域都开放了出去.整个IM系统的框架以及开发流 ...

  9. Web UI自动化测试实例(登录网易云音乐账户)——(五)Taiko

    初步想法:用Taiko自动化工具,实现登录太简单了吧! 一.对taiko的认识 初识taiko: 自动化测试工具-----Taiko taiko的安装:可能踩如下坑,那些年的坑之node.js 和 t ...

最新文章

  1. CMenu类的使用方法
  2. 乘法器之五(混和式乘法器(Hybrid multiplication))
  3. High Logic MainType 10中文版
  4. MySQL8.0.x 版本安装步骤傻瓜式教程【官方版】
  5. 宝藏新品牌成长白皮书:新品牌心智与营销增长方法论
  6. django生产环境部署
  7. 连接池配置oracle aix,一次AIX系统swap使用过高的故障解决过程
  8. [Unity3D]自己动手重制坦克舰队ArmadaTank
  9. 更新macOS Big Sur系统后,Parallels Desktop打不开怎么办?教你解决方法!
  10. (转)国外 RPA 企业盘点:谁是领导者,谁是挑战者
  11. 飞利浦 f718 java 微信_第一次使用飞利浦F718手机感觉怎么样及优缺点
  12. SQL 笛卡尔积现象
  13. MATLAB画旋转曲面1
  14. 【5】数据结构与算法--- 算法 进阶
  15. 期末总结——Spark
  16. 讨论JAVA和QT之争
  17. Win10企业版激活
  18. 门禁信息推送不了服务器,十牛校园门禁系统封闭化管理不封闭消息
  19. 华中科技大学计算机上机,华中科技大学_2010___考研计算机_复试上机
  20. 推特营销引流入门指南

热门文章

  1. 网友自制华硕Eee PC信封版广告
  2. 表的内连接、外连接、自连接、自然联接到底是什么?
  3. mysql中外键设置级联删除_MySQL中利用外键实现级联删除、更新
  4. Vue “npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed”
  5. 作为产品经理,你都是怎样思考问题的?
  6. 达梦数据库简单sql语句
  7. 祈祷09新年的钟声。。。
  8. python SyntaxError: Non-ASCII character '\xe4' in file
  9. 互联网对医疗健康领域的赋能
  10. HL-340 usb转串口线驱动