《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)

1.简介

上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM。

2.项目实战

在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际代码就几行。

2.1代码设计

1.先新建一个pageObjects包,然后在pageObjects包新建一个百度主页类:BaiduHomePage1,代码设计如下图所示:

2.再次新建一个testSuites包,然后在testSuites包下新建一个测试类:TestWithPOM1

2.2参考代码

1.BaiduHomePage1

package pageObjects;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;/*** @author 北京-宏哥* * @公众号:北京宏哥* * 《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)** 2022年3月20日*/public class BaiduHomePage1 {WebDriver driver;// 元素定位//登录链接By login_link = By.xpath("//*[@id='u1']/a[1]");//输入用户名框By inputBox_username = By.xpath("//*[@id='TANGRAM__PSP_11__userName']");//输入密码By inputBox_password = By.xpath("//*[@id='TANGRAM__PSP_11__passwordWrapper']/input[2]");//登录按钮By login_submitBtn = By.id("TANGRAM__PSP_11__submit");// 业务逻辑和操作方法// 构造方法public BaiduHomePage1(WebDriver driver){this.driver = driver;}//点击登录链接public void clickLoginLink(){// 点击账户登录driver.findElement(login_link).click();}// 登录步骤拆分-输入用户名public void inputUsername(String username){driver.findElement(inputBox_username).sendKeys(username);}// 登录步骤拆分-输入密码public void inputPassword(String password){driver.findElement(inputBox_password).sendKeys(password);}// 点击登录按钮public void clickLoginBtn(){driver.findElement(login_submitBtn).click();driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);}//重构一个登录方法public void login(String name, String pass){// 点击账户登录driver.findElement(login_link).click();driver.findElement(inputBox_username).sendKeys(name);driver.findElement(inputBox_password).sendKeys(pass);driver.findElement(login_submitBtn).click();driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);}}

2.TestWithPOM1

package testSuites;import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;import pageObjects.BaiduHomePage1;/*** @author 北京-宏哥* * @公众号:北京宏哥* * 《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)** 2022年3月20日*/public class TestWithPOM1 {WebDriver driver;@BeforeClasspublic void setUp() throws Exception{System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");  driver = new ChromeDriver();  driver.manage().window().maximize();  driver.get("https://www.baidu.com/");  Thread.sleep(2000);  }@Testpublic void testLogin() throws InterruptedException{BaiduHomePage1 hp = new BaiduHomePage1(driver);hp.clickLoginLink();Thread.sleep(2000); hp.inputUsername("user1");hp.inputPassword("123456");hp.clickLoginBtn();}}
2.3运行代码

1.运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作,如下小视频所示:

3.小结

宏哥在后续的框架中也会使用PageFactory,毕竟人家都封装好了,你可以用现成的,为啥还要自己费劲封装了。

   好了,时间也不早了,今天就分享和讲解到这里,希望对您有所帮助,感谢您耐心地阅读!

  每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

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

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

相关文章

算法打卡day38

今日任务: 1)完全背包理论基础(卡码网52. 携带研究材料) 2)518.零钱兑换II 3)377. 组合总和 Ⅳ 4)复习day13 完全背包理论基础(卡码网52. 携带研究材料) 题目链接:52. 携带研究材料(第七期模拟…

使用LangChain和GPT-4,创建Pandas DataFrame智能体

大家好,数据分析和数据处理是数据科学领域每天都在进行的基本任务。高效和快速的数据转换对于提取有意义的见解和基于数据做出明智决策至关重要。其中最受欢迎的工具之一是Python库Pandas,它提供了一个功能强大的DataFrame工具,使用灵活直观的…

基于51单片机土壤湿度检测及自动浇花系统

基于51单片机土壤湿度检测及自动浇花 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1.LCD1602实时显示湿度、湿度上下限; 2.可用按键设置湿度、湿度上下限; 3.当湿度低于下限…

分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机数据…

搭建电商供应链需要用到哪些电商接口?||主流电商API接口解说

搭建供应链系统时,您可能需要与电商平台进行集成,以实现订单管理、库存同步、物流跟踪等功能。以下是一些常见的电商接口,可以帮助您构建供应链系统: 1. **淘宝开放平台接口**:淘宝开放平台提供了丰富的接口&#xff…

4399下架了的flash游戏 网盘自提取

下载好游戏后,需要使用flash进行打开,直接拖动游戏文件到flash文件,即可用flash快捷打开。 flash下载 百度网盘链接:https://pan.baidu.com/s/1KUz4ymg0SS7wFGH54hdE3A?pwdnisj 提取码:nisj 一、幻想纹章 不太行了…

Node.JS后端开发笔记整理(简洁版)

前端 1. 开发环境和技术栈 开发工具:Visual Studio CodeNode.js版本:18.19.0(建议保持在18)包管理器:npm前端框架:Vue3.4脚本语言:TypeScript构建工具:Vite后端框架:Ex…

ubuntu设置扩充swap交换空间

Swap是指Linux系统中的交换分区,类似于Windows的虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟成内存来使用,从而解决内存不足的问题。交换分区,它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行! …

Golang基础-13

Go语言基础 介绍 并发 channel goroutine 互斥锁 读写锁 原子操作 select 超时处理 sync包 runtime包 介绍 本文介绍Go语言中 channel、goroutine、互斥锁、读写锁、原子操作、select、超时处理、sync包、runtime包等相关知识。 并发 进程是是最小的资源管理单元…

异步FIFO约束set_max_delay

1.最大延迟set_max_delay set_max_delay [-datapath_only] -from [ node_list] -to [node_list] delay_value 在Set Max Delay约束中使用-datapath_only选项时,它指示综合工具在优化设计时仅考虑数据通路的延迟,而不考虑控制逻辑的延迟。 关于最大最小…

L1正则化的数学公式

L1正则化是机器学习和统计学中常用的正则化技术,用于控制模型的复杂度并防止过拟合。它们的数学表达如下: L1正则化(也称为Lasso正则化):在损失函数中添加模型参数的绝对值之和作为正则化项。其数学公式如下所示&…

利用地图资源工具让Sentinel-2自动生成NDVI\EVI

新版地图资源工具已经能自动计算EVI了,也就是现在工具可以自动计算NDVI、EVI及做哨兵L1C数据的自动预处理!只要勾选如下选项后数据下载的同时会自动生成NDVI、EVI! 归一化差异植被指数 (NDVI) 由于植被在近红外波段处有较强的反射&#…

Training - PyTorch Lightning 的 Horovod 策略实践 (all_gather)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137686312 在 PyTorch Lightning 中使用 Horovod 策略,可以在多个 GPU 上并行训练模型。Horovod 是分布式训练框架&#xff…

Oladance、南卡、漫步者开放式耳机好不好用?3大当红明星产品测评PK

​在音频市场中,开放式耳机以其创新设计和卓越听感赢得了一定的关注。然而,也存在一些产品质量和音质不尽人意,甚至可能影响用户听力安全。作为一名专业的音频设备评测师,我建议用户在选择开放式耳机时,应优先选择那些…

《R语言与农业数据统计分析及建模》学习——控制流

1、控制流的概念和作用 控制流是指根据循环或条件来控制程序的执行顺序和逻辑。 2、循环语句 循环语句允许程序重复执行特定的代码块,知道满足特定条件。 在R语言中,常见的循环语句有for、while和repeat。 # for循环用于在已知次数的情况下重复执行代码…

磁盘的管理

会在linux中使用硬盘 分区 格式化(重新安装文件系统) 挂载 硬盘的分类 1.机械硬盘 2.固态硬盘 硬盘的数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的 数据 (扇区越多容量越大) 存放数据的…

2024.4.13 Python 爬虫复习day01

目录 day01_HTTP协议HTML页面web服务器 各类名词解释 URL统一资源定位符 HTTP协议 HTML页面 知识点: 第一个页面 标题标签和图片标签 注册页面 登录页面 WEB服务器 安装fastapi和uvicorn 原始命令方式 镜像源命令方式 工具方式 快速搭建web服务器 知识点: 示例…

openGauss学习笔记-266 openGauss性能调优-TPCC性能调优测试指导-文件系统配置

文章目录 openGauss学习笔记-266 openGauss性能调优-TPCC性能调优测试指导-文件系统配置266.1 查看当前数据盘的文件系统类型266.2 对于需要修改的磁盘,备份所需的数据至其他磁盘或其他服务器266.3 格式化磁盘为xfs文件系统266.4 执行**步骤一** openGauss学习笔记-…

《Kubernetes部署篇:基于Kylin V10+ARM架构CPU+外部etcd使用containerd部署K8S 1.26.15容器版集群(多主多从)》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:企业级K8s集群运维实战 1、在当前实验环境中安装K8S1.25.14版本,出现了一个问题,就是在pod中访问百度网站,大…

Mysql嵌套查询太简单了

1、子查询的分类 不相关查询: 子查询能独立执行 相关查询: 子查询不能独立运行 相关查询的执行顺序: 首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询, 若WHERE子句返回值为真,则取此元组放入结果…