web自动化测试思路及实战:PO设计模式介绍

news2025/1/12 20:46:25

Page Objects 设计模式

Page Objects概念:

Page Objects是指UI界面上用于与用户进行交互的对象

pageobjects 设计模式概念:

pageobjects 模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。 当页面元素id变化时,只需要更改测试页Class中页面的属性即可。

简单来讲,就是将代码以页面为单位进行组织,针对这个页面上的所有信息,相关操作都放到一个类中;从而使具体的测试用例变成了简单的调用和验证操作

pageobjects 设计模式:把页面设计成类,把页面上的控件作为属性,把控件的操作设计成方法;通过PO模式编写脚本,实现数据分离;

PO模式分层和线性脚本的比较:

线性脚本: 按操作识别元素,识别一个元素操作一个,风险比较小

page object模式模型: 要先全部识别元素后,然后再进行操作,

(比如在登录界面,要识别登录相关的元素后还要识别登录后界面的相关元素,但是按照po模式的方法无法定位登录后的元素所以会报元素识别失败的错误,故使用po模式要进行元素数据分离操作,可通过把元素信息放到excel或者yaml中;识别数据分离,实例化对象的时候不识别元素,操作的时候再去识别)

END 最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703785.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 拖拽实现,最简单的demo

入门教程&#xff0c;后续有时间会慢慢更新&#xff0c;下面是一个简单demo实现拖拽功能 <template><div><div ref"targetDom" id"div" dragenter"dragenter">我是可放置目标</div><p id"drag" draggable…

声明式事务

1.回顾事务 把一组业务当成一个业务来做&#xff1a;要么都成功&#xff0c;要么都失败&#xff01;事务在项目开发中&#xff0c;十分的重要&#xff0c;涉及到数据的一致性问题&#xff0c;不能马虎&#xff01;确保完整性和一致性&#xff1b; 事务ACID原则 原子性一致性…

基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

value-initialization of reference type ‘nlohmann::basic_json<>’的错误

使用json出现这个错误&#xff0c;是因为gcc的版本问题&#xff0c;我的是4.8版本 解决办法就是更改gcc版本&#xff0c;我更改的版本是9.3 参考更改版本(3条消息) 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g 9.3)_centos7gcc版本_宁海没有七号公园的博客-CSDN博客

leetcode验证回文字符串

链接: 验证回文字符串 class Solution { public:bool isLetterOrNumber(char ch){return (ch>a && ch<z)|| (ch> 0 && ch < 9);}bool isPalindrome(string s) {//大写字母转换成小写for(auto& ch : s){if(ch> A && ch < Z){ch…

POI导出Excle工具类(反射读取Java类)

文章目录 简介操作Excel相关组件使用工具类 简介 POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API&#xff0c;Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 所以POI的主要功能是可以用Java操作Microsoft Office的相关文件&#xff0…

【uniapp开发小程序】点击获取手机号(使用@getphonenumber)

一、实现效果 二、代码实现&#xff1a; <template><view><view class"shopadd" v-if"info.mobile">{{info.mobile}}</view><button class"getNumber" v-else open-type"getPhoneNumber" getphonenumber…

linux php 内置服务器测试 phpinfo

环境&#xff1a;linux 操作系统&#xff0c;有图形化界面&#xff0c;有浏览器 php -S localhost:8000直接使用 -S 命令选项&#xff0c;然后指定地址及端口号&#xff0c;我们就可以运行起来一个 PHP 内置的简易WEB服务器。默认情况下&#xff0c;这个地址会找当前目录下的 …

干货|三个维度详解 Taier 本地调试原理和实践

在平时和开发者们交流的过程中&#xff0c;发现许多开发朋友尤其是新入门 Taier 的开发者&#xff0c;对于本地调试都有着诸多的不理解和问题。本文就大家平时问的最多的三个问题&#xff0c;服务编译&#xff0c;配置&本地运行&#xff0c;如何在 Taier 运行 Flink-standa…

46 # 可读流 readStream

上一节实现了文件拷贝功能&#xff0c;其中的读和写的操作都耦合在一起了&#xff0c;能不能实现一个方法&#xff0c;可以用一行搞定&#xff0c;这里涉及到流里的 pipe 流 流是有方向的&#xff0c;先读出来再写&#xff0c;node 中实现了流的模块&#xff08;stream&#…

记一次使用MySQL数据库ORM为 SqlSugar 事务无效的处理过程

在项目中使用了开源代码框架admin.net &#xff0c;其使用的数据库ORM为SqlSugar 使用以下代码执行事务理论上应该有回滚发生&#xff0c;但数据任然删除了 [UnitOfWork][ApiDescriptionSettings(Name "Delete")] [HttpPost][DisplayName("删除菜单")]p…

linux上搭建nfs服务

NFS&#xff08;Network File System&#xff09;&#xff1a;它最大的功能就是可以通过网络&#xff0c;让不同的机器、不同的操作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中&#xff0c;而在本地端的系统中来看&…

测试背了4年“锅“,测试缺陷总结整理(细致)“锅“终丢掉了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 缺陷分析也是测试…

青岛大学_王卓老师【数据结构与算法】Week03_04_线性表的链式表示和实现4_学习笔记

本文是个人笔记&#xff0c;仅用于学习分享&#xff0c;素材来自青岛大学王卓老师的教学视频&#xff0c;如有侵权&#xff0c;请留言作删文处理。 视频链接&#xff1a; 数据结构与算法基础–第3周04–2.5线性表的链式表示和实现4–单链表基本操作2–销毁单链表 &#x1f4…

Echarts X轴文本显示不全 axisLabel设置旋转角度进行展示

option {xAxis: {......axisLabel: {rotate: 45},......},...... };效果&#xff1a;

伦敦金实时行情走势图的魅力

一直以来&#xff0c;伦敦金都因其自由的交易时间和不设涨跌幅限制而充满魅力&#xff0c;它每天的实时行情走势图是全球投资者关注的焦点&#xff0c;任何投资者都可以结合技术和基本面分析手段&#xff0c;来预测未来金价走势&#xff0c;从而在这个市场上实现收益。 虽然在一…

玩游戏感觉很不流畅,无法进入游戏的解决方法

别说3A大作了&#xff0c;有时候觉得玩个小单机游戏感觉很不流畅&#xff0c;甚至进不去游戏&#xff0c;出现这种情况大家就得多关注下自己电脑故障问题了&#xff0c;驱动人生帮大家解决玩游戏不流畅&#xff0c;无法进入游戏的故障问题。 出现玩游戏感觉很不流畅&#xff0…

【C++】C++入门(二)

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 1.缺省参数(默认参数) 2.函数重载 a.函数重载的概念 问题&#xff1a; 为什么C语言无法重载&#xff0c;而C plus plus 可以重载&#xff1f; C plus plus是如何做到函数重载的&a…

【几何数学】【Python】【C++】将线段沿着线段方向延长一定长度,求新的点

p1点和p2点是一条线段的两端&#xff0c;沿着p1指向p2的方向&#xff0c;将线段长度延伸长度x&#xff0c;求延伸后的点ep。如下图&#xff1a; Python代码&#xff1a; import mathdef extend_line_segment(p1, p2, extension_length):"""延伸线段长度并返回…

微信小程序全局数据共享

1.概念 全局数据共享(又叫做&#xff1a;状态管理)是为了解决组件之间数据共享的问题。 2.小程序中共享方案 在小程序中&#xff0c;可使用mobx-miniprogram配合mobx-miniprogram-bindings实现全局数据共享mobx-miniprogram用来创建Store实例对象 mobx-miniprogram-bindings…