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工具基础使用教程