博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PO页面对象模式封装
阅读量:6966 次
发布时间:2019-06-27

本文共 1504 字,大约阅读时间需要 5 分钟。

PO的主要价值体现在对界面交互细节的封装,这样可以使测试案例可以更关注与业务而非界面细节,提高测试案例的可读性。

 
以传统的登陆页面为例實現PO模式,因为每个用例中都需要登陆。
其中需要使用PageFactory.initElements()工厂方法,此方法也可以解决页面元素过期的问题。
 。。
页面层,对用例中需要用到的元素定义的Page文件中。
/**
 * 登陆页页面元素
 * @author herry
 *
 */
public class LoginPage {
@FindBy(id="ploginname")
public static WebElement username;
@FindBy(id="j_password")
public static WebElement password;
@FindBy(id="captchaCode")
public static WebElement code;
@FindBy(css="a.account_15")
public static WebElement sumbitButton;
}
 
 
//封裝主要的業務功能操作,例如這裡的登陸功能,
public class LoginUK_Control extends LoginPage {
LoginPage loginPage=PageFactory.initElements(driver, LoginPage.class);
/**
* 登录loginUK
* @param username
* @param pass
* @param code
* @param flag 账户状态
*/
public LoginUK_Control(String username,String pass,String code) {
loginPage.username.clear();
loginPage.username.sendKeys(username);
loginPage.password.clear();
loginPage.password.sendKeys(pass);
loginPage.code.clear();
loginPage.code.sendKeys(code);
loginPage.sumbitButton.click();
 
}
}
 
//在用例層面,每次調用登陸業務時,只需要調用control方法,無需關注頁面層面,這樣如果頁面層面有改動,也只需修改Page方法即可。
@Test(dataProvider = "dataFortestMethod")
public void NZ_Front_001(Map<String, ArrayList<String>> data) {
driver.get(config.getValue("config.LoginUKURL"));
new  Control(data.get("username").get(0).toString(), data
.get("password").get(0).toString(), data.get("code").get(0)
.toString());
assertEquals(driver.getTitle(),
Init.properties.getValue("forexHome.title"));
home.loginOut.click();
}

转载于:https://www.cnblogs.com/shengs/p/7979733.html

你可能感兴趣的文章
Know more about AWR Parse Statistics
查看>>
SElinux 配置与管理
查看>>
Script to Collect RAC Diagnostic Information (racdiag.sql)
查看>>
Linux对外连接端口数限制
查看>>
增加删除列列
查看>>
docker的资源隔离---cpu、内存、磁盘限制
查看>>
PMP考生最关心的八大问题
查看>>
SpringBoot启动分析
查看>>
python click模块-命令行神器
查看>>
Zabbix从入门到应用(一)
查看>>
让lync客户端显示电话号码等信息
查看>>
特殊符号
查看>>
perl教程 学习总结
查看>>
OSDN开通了
查看>>
LAMP-----3、wordpress网站从web01复制到web02中
查看>>
用TCL发送组合键
查看>>
几种主流网页开发语言的思考(上)
查看>>
Ubuntu 上ipvsadm负载均衡
查看>>
linux新内核编译
查看>>
详解AJAX工作原理以及实例讲解
查看>>