【python】深入了解Selenium-PageObject

2023-11-09

1、PageObject 定义

Page Object(简称PO)模式,是Selenium实战中最为流行,并且是自动化测试中最为熟悉和推崇的一种设计模式。在设计自动化测试时,把页面元素和元素的操作方法按照页面抽象出来,分离成一定的对象,然后再进行组织。

2、PageObject 历史

在这里插入图片描述

3、PageObject 设计理念

在这里插入图片描述

那到底什么是Page Object模式,见名知意,就是页面对象,在实际自动化测试中, 一般对脚本分为三层:
对象层: 用于存放页面元素定位
逻辑层: 用于存放一些封装好的功能用例模块
业务层: 用于存放我们真正的测试用例的操作部分

它的好处如下:
集中管理元素对象
便于应对元素的变化
集中管理一个page内的公共方法,
便于测试用例的编写 后期维护方便,
不需要重复的复制和修改代码

具体的做法如下:
创建一个页面的类
在类的构造方法中,传递 WebDriver 参数。
在测试用例的类中,实例化页面的类,并且传递在测试用例中已经实例化的WebDriver对象。
在页面的类中,编写该页面的所有操作的方法
在测试用例的类中,调用这些方法

4、PageObject 六大原则

在这里插入图片描述

1)用公共方法替代UI所提供的服务和功能
2)不要给外部暴露页面内部的元素及细节
3) 一般不要使用断言
4)方法应该返回其他的PageObject或者返回用于断言的数据
5)不需要关心页面所有功能,只封装需要的内容
6)同样的行为不同的结果可以建模为不同的方法

5、PageObject 特点

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python】深入了解Selenium-PageObject 的相关文章

随机推荐

  • bugku各种绕过

    题目要求uname passwd 但是他们的SHA1值要相同 且id值为margin 利用PHP的sha1漏洞 当参数为数组时返回false 判断成立
  • 嵌入式入门基础知识有哪些?

    嵌入式系统是指在特定应用领域内为满足特定要求而设计的计算机系统 通常被嵌入到设备中 具有实时性 可靠性 低功耗等特点 嵌入式系统应用广泛 例如 智能家居 智能手表 汽车控制系统 医疗设备等 在本篇博客中 我们将讨论嵌入式入门基础知识 包括嵌
  • 狂神说Mybatis笔记(全网最全)

    Mybatis 环境说明 jdk 8 MySQL 5 7 19 maven 3 6 0 IDEA 学习前需要掌握 JDBC MySQL Java 基础 Maven Junit 1 Mybatis简介 1 1 什么是MyBatis MyBat
  • 认识区块链,认知区块链— —数据上链

    上周末参加一次长沙本地胡子互联网俱乐部举办的区块链分享会 颇受启发 同时感谢俱乐部提供的这个交流平台 祝好 好吧 还是先把前些天对区块链的一点理解简单整理下 再回顾下上周末的参会纪要比较好 下篇给大家分享出来 个人区块链思考第一篇 认识区块
  • Yolov3计算准确率、误报率、漏检率等

    思想很简单 将标注的yolo数据转下格式 转为 类别 xmin ymin xmax ymax 转换valid后的信息 两个信息进行对比 完事 具体的 在终端执行 darknet detector valid cfg voc data cfg
  • 【SSM框架】之Spring

    SSM框架笔记 自用 Spring Spring Framework系统架构 Spring程序开发步骤 核心概念 IoC Inversion of Control 控制反转 使用对象时 由主动new产生对象转换为由外部提供对象 此过程中对象
  • 计算机毕业设计看这篇就够了(二)毕设流程

    本篇将为大家介绍计算机专业毕业设计流程 提前了解毕设流程可以让同学们从宏观角度去看毕设要做些什么样的事情 大概知道每个阶段要去做哪些工作 为后续毕设任务的真正开展打下心理预期 也不至于一脸懵 计算机毕设分为以下主流程 选题 确定导师 完成前
  • 【Proteus仿真】【STM32单片机】基于stm32的智能书桌设计

    文章目录 一 功能简介 二 软件设计 三 实验现象 联系作者 一 功能简介 系统运行后 默认为手动模式 当检测有人 可通过K2键开关灯 如果姿势不对 警示灯亮 否则灭 可通过K3和K4键调节桌子高度 按下K1键切换为自动模式 此时有人 且光
  • Sentinel原理与Demo

    Sentinel 是什么 随着微服务的流行 服务和服务之间的稳定性变得越来越重要 Sentinel 以流量为切入点 从流量控制 熔断降级 系统负载保护等多个维度保护服务的稳定性 Sentinel 具有以下特征 丰富的应用场景 Sentine
  • 【FreeRTOS(三)】任务状态

    文章目录 任务状态 任务挂起 vTaskSuspend 取消任务挂起 vTaskResume 挂起任务调度器 vTaskSuspendAll 取消挂起任务调度器 xTaskResumeAll 代码示例 任务挂起 取消任务挂起 代码示例 挂起
  • Docker help帮助文档

    1 查看 docker help 帮助 docker help 2 用法 docker 选项 命令 3 选项 客户端配置文件的配置字符串位置 默认为 root docker D 启用调试模式 H 要连接的主机列表守护进程套接字 l 设置日志
  • Centos7.3安装和配置Mysql5.7

    第一步 获取mysql YUM源 进入mysql官网获取RPM包下载地址 https dev mysql com downloads repo yum 点击 下载 右击 复制链接地址 https dev mysql com get mysq
  • 源码剖析transformer、self-attention

    原文链接 首先给大家引入一个github博客 这份代码是我在看了4份transformer的源码后选出来的 这位作者的写法非常易懂 代码质量比较高 GitHub Separius BERT keras Keras implementatio
  • 一步一步教你用idea上交代码到gitee(图文解释)

    一步一步教你用idea上交代码到gitee 图文解释 文章目录 一步一步教你用idea上交代码到gitee 图文解释 工具准备 具体操作 结语 工具准备 首先 我们进行代码的提交需要两个工具包 在我的上一篇中有讲 大家可以自行去提取 2条消
  • .net 批量注册服务

    假设我们需要注册xxxQuery服务 例如下图中的BarQuery和FooQuery 传统的做法是 services TryAddScoped
  • vscode 运行和调试 javascript 代码

    安装node 安装vscode 扩展包 code runer 配置vs code下有关F5的操作的文件 参考地址
  • 【Zabbix实战之运维篇】Zabbix监控Docker容器配置方法

    Zabbix实战之运维篇 Zabbix监控Docker容器配置方法 一 检查Zabbix监控平台状态 1 检查Zabbix各组件容器状态 2 奸诈Zabbix server状态 二 下载监控模板 1 进入Zabbix官网下载页面 2 查看下
  • 微信小程序中识别html标签的方法

    rich text组件 在微信小程序中有一个组件rich text可以识别文本节点或是元素节点 具体入下 需要识别的数据放在data中 然后放在nodes属性中即可
  • 编写程序:5类员工有对应封装类,创建Employee数组,若干不同的Employee对象,并实现增删改查功能(《黑马程序员》P144编程题加强版)

    文章目录 Employee类 SalariedEmployee类 HourlyEmployee类 SalesEmployee类 BasePlusSalesEmployee类 Test类 实现增删改查 原题 1 Employee 这是所有员工
  • 【python】深入了解Selenium-PageObject

    1 PageObject 定义 Page Object 简称PO 模式 是Selenium实战中最为流行 并且是自动化测试中最为熟悉和推崇的一种设计模式 在设计自动化测试时 把页面元素和元素的操作方法按照页面抽象出来 分离成一定的对象 然后