java+Selenium+TestNg搭建自动化测试架构实现POM(page+Object+modal)

Posted 小李卫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java+Selenium+TestNg搭建自动化测试架构实现POM(page+Object+modal)相关的知识,希望对你有一定的参考价值。

1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例的可维护性。

  PageObject设计模式:是将某个页面的所有"元素(包含控件)属性"及"元素操作"封装在1个类(Class)里面。

2.以我们公司的登录页面为例讲解pom模式:

 

 

 

 

pom的模式就是测试代码和元素定位的分离,保证在元素定位发生改变的时候,不会再去更改测试代码,实现测试代码和页面元素的分离。

3.元素定位代码:

package com.rrx.test;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

public class TestLoginPage {
//登录名
@FindBy(xpath=".//*[@id=\'username\']")
WebElement userName;
//密码
@FindBy(xpath=".//*[@id=\'password\']")
WebElement password;
//登录按钮
@FindBy(xpath=".//*[@id=\'form\']/div[4]/button")
WebElement login;
public void login(String user,String pass){
System.out.println(user);
userName.sendKeys(user);
password.sendKeys(pass);
login.click();
}

}

4.测试代码:

package com.rrx.test;

import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import org.testng.Assert;
import org.testng.Reporter;
import org.testng.annotations.Test;

import com.rrx.framework.BorwserEngin;
import com.rrx.framework.Logger;

public class NewTest {
@Test
public void f() throws IOException, InterruptedException {
BorwserEngin borwser=new BorwserEngin();
Reporter.log("我在打印日志");
WebDriver driver = borwser.getDriver();
TestLoginPage page=PageFactory.initElements(driver, TestLoginPage.class);
page.login("hexin001","Test123456");

Reporter.log("我退出浏览器了");
Thread.sleep(3000);
Logger.getLogger().info("退出");
// borwser.tearDown();



}
}

以上是关于java+Selenium+TestNg搭建自动化测试架构实现POM(page+Object+modal)的主要内容,如果未能解决你的问题,请参考以下文章

java+selenium+testng+reportng+jenkins自动化环境搭建

selenium+java+testNG+maven环境搭建

java+Selenium+TestNg搭建自动化测试架构实现POM(page+Object+modal)

java+Selenium+TestNg搭建自动化测试架构实现POM(page+Object+modal)

自动化测试历程 selenium+testng+java+reportng+jenkins

Mac系统搭建java+selenium+testng环境