浅谈 PageObject模式
来源:互联网 发布:搜索引擎优化排名 编辑:程序博客网 时间:2024/06/05 05:24
做过UI自动化的都晓得,在做UI自动化时定位特别依赖页面,一旦页面发生变更就不得不跟着去修改页面定位。
在webdriver中,假设你想对一个元素定位操作,那么你可能会编写下面的代码:
driver.findElement(By.id("ad")).click();
发现问题:
你有10个地方对这个元素做了这个操作,哪天这个控件的元素变了,你就不得不去修改10个地方。
那么,有什么好的方法来解决这个问题呢?
这就是PageObject模式的引入的必要性。
那到底什么是PageObject模式?
PageObject 见名思意思,就是页面对象,也就是把界面定位和业务操作分开,在我现在团队我推行的是三层模式,把UI自动化分为了对象库层,操作层和业务层。PO思想对界面交互细节进行了封装,这样可以使测试案例更关注业务,而非界面细节,提高了测试案例的可读性,同样也可以为我后期BDD(Behavior Driven Deveopment)的推行打好基础。
废话这么多来看个例子吧:
假设我现在要做一个登陆操作,那么我创建一个对象库层:
public class LoginPage{
public static By userName = By.name("userName");
public static By pwd = By.name("passWord");
public static By login=By.id("login");
}
操作层:
public void inputUser(String name, String pwd) {
driver.findElement(LoginPage.userName).sendKeys(name);
driver.findElement(LoginPage.pwd ).sendKeys(pwd);
}
业务层:
@Test
public void login(){
login.inputUser("username","pwd");
tools.click("点击【登录】",login);
}
很容易从上面的案例可以看出,PO模式引入前后的区别:
当然减少UI自动化脚本的维护,提高测试案例的可读性方式很多的,PO不是唯一的,也不是什么真理,根据自己环境拿出一套合适的方案才是目标。
1 0
- 浅谈 PageObject模式
- 浅谈 PageObject模式
- 浅谈 PageObject模式
- QTP - PageObject设计模式
- selenium设计模式之PageObject
- 关于app自动化测试pageObject设计模式
- Appium PageObject
- selenium pageObject
- [Android测试] AS+Appium+Java+Win 自动化测试之八:使用PageObject模式和重封装
- AS+Appium+Java+Win 自动化测试之八:使用PageObject模式和重封装
- WebDriver——PageObject
- Selenium PageObject实例
- WebDriver PageObject学习
- 设计模式--浅谈适配器模式
- 设计模式--浅谈命令模式
- 设计模式--浅谈原型模式
- 设计模式--浅谈策略模式
- 模式应用浅谈
- java基础巩固之IO(一)
- Windows核心编程 进程内存访问
- web.xml配置详解
- 面试的三个环节---(摘自《剑指offer》)
- Elasticsearch基础教程之安装
- 浅谈 PageObject模式
- LeetCode_个人题解
- C 不引入第三变量交换两个数的值(异或运算符^)
- 本博客全部移至http://blog.sina.com.cn/u/5501630255
- 广播机制的优越性
- 常用的排序算法以及实现
- CUDA: 不要在一个.cpp文件中声明kernel(即以_global_和_device_的函数)
- 哈希表
- 《C语言及程序设计》实践参考——反弹的皮球