《手把手教你》系列基础篇(九十四)-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; @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,毕竟人家都封装好了,你可以用现成的,为啥还要自己费劲封装了。
好了,时间也不早了,今天就分享和讲解到这里,希望对您有所帮助,感谢您耐心地阅读!
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
公众号(关注宏哥)                                                                                 客服微信