当前位置: 首页 > news >正文

python+selenium 实现UI自动化框架

主要实现思路

1、代码封装关键字操作
2、后续在excel中填写操作步骤,无需写代码
3、使用allure 体现测试报告
4、在将代码部署放到jenkins中自动部署、运行

关键字就是封装好的方法

# 滚动到指定位置defscroll_to_location(self,locator_type,locator_value):element=self._find_element(locator_type,locator_value)# 使用元素的位置信息滚动self.driver.execute_script("window.scrollTo(0, arguments[0].offsetTop);",element)time.sleep(2)

元素定位方式有多种:

“id” “name”: “xpath”: “css”:
= “link_text”:
return By.LINK_TEXT, locator_value
else:
raise ValueError(f"不支持的定位方式: {locator_type}")

定位方法Python 写法 (By)描述示例
IDBy.ID通过元素的id属性定位(速度最快,首选)find_element(By.ID, "username")
NameBy.NAME通过元素的name属性定位find_element(By.NAME, "password")
Class NameBy.CLASS_NAME通过元素的class属性定位find_element(By.CLASS_NAME, "btn-submit")
Tag NameBy.TAG_NAME通过元素的标签名定位(如 input、div、a)find_element(By.TAG_NAME, "h1")
Link TextBy.LINK_TEXT精确定位超链接(<a>标签)的显示文本find_element(By.LINK_TEXT, "点击登录")
Partial Link TextBy.PARTIAL_LINK_TEXT通过超链接显示文本的部分内容定位find_element(By.PARTIAL_LINK_TEXT, "登录")
XPathBy.XPATH使用 XPath 语法定位(功能最强大,但速度稍慢)find_element(By.XPATH, "//input[@id='username']")
CSS SelectorBy.CSS_SELECTOR使用 CSS 选择器语法定位(速度快,语法简洁)find_element(By.CSS_SELECTOR, "#username")

比如要生成随机邮箱 ${get_random_email()} 。可以先在代码中自定义方法,在excel中引用函数名。在执行用例是自动调用get_random_email方法。

http://www.jsqmd.com/news/476582/

相关文章:

  • 工业现场的温度控制就像给锅炉装了个“智能体温计“,S7-200 PLC配组态王的组合特别适合中小型锅炉房。咱们直接上干货,先看个PLC端的温度采集程序
  • 双向rrt树路径规划MATLAB实现 双向rrt算法的三维路径规划 加入路径平滑处理 代码有详细注释
  • ARM数据处理指令(ARM处理器指令系统——ARM指令集初学,上篇)
  • 05-RAG 核心概念与向量存储:检索增强生成原理
  • 深度拆解 OpenClaw
  • 【异常】OpenClaw认证 Please carry the API secret key in the ‘Authorization‘ field of the request header
  • 蓝牙学习系列(一):从零认识蓝牙技术体系
  • CrewAI智能体开发:CrewAI 运行自动化工具
  • 锁相环抓取基波相位
  • Flutter 三方库 jsonize 的鸿蒙化适配指南 - JSON 转换的极简流派、在鸿蒙端实现流式序列化实战
  • 基于No.1186 S7-200 PLC与组态王的锅炉水温串级调节系统的设计与实现
  • 升级 Java 21 却把网关压崩了?Spring Boot 虚拟线程与传统线程池的生死冲突揭秘
  • DO-254通读--10.0 硬件设计生命周期数据
  • 基于22三菱PLC与MCGS组态的饮料灌装自动化控制系统设计与实现
  • 智能指针原理、使用和实现——C++11新特性
  • 计算机毕业设计springboot数字化心理健康服务系统的设计与实现 基于SpringBoot的“树洞“心理咨询服务平台的设计与实现 基于SpringBoot的在线心理支持与智慧辅导平台
  • OpenClaw 生态全景:九大类 Open Claw 产品深度横评
  • 收藏!彻底解决RAG系统效果不佳问题:这套组合策略让准确率飙升60%
  • 从岭回归到循环矩阵:KCF算法核心数学工具全解析
  • 改进蚁群算法agv路径规划。 基于matlab的二维栅格地图的精英蚁群算法的路径规划算法仿真
  • 第10章 数据库的安全与保护
  • 基于MATLAB的准Z源NpC三电平逆变器:创新SVPWM调制与中性点平衡算法的研究与实践
  • 智能体记忆详解:解锁大模型长时推理与持续学习能力
  • 权威指南 第三章
  • pipx — 安全便捷地管理 Python 命令行工具
  • 从施密特触发器到迟滞比较器:运算放大器正反馈应用的深度解析
  • 网站打不开(空白页/404/500)问题|已解决
  • 带隙基准技术的Cadence电路设计:超低漂、高电源抑制比、精细化温度补偿及功耗优化详解(附带...
  • C++:继承】面向对象编程精要:C++继承机制深度解析与最佳实践
  • STM32C8T6+WS2811 RGB彩灯时序调试实战与PWM控制对比