首页 技术 正文
技术 2022年11月10日
0 收藏 395 点赞 4,220 浏览 2624 个字

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; @BeforeClass
public 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);
} @Test
public 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,毕竟人家都封装好了,你可以用现成的,为啥还要自己费劲封装了。

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,493
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297