Page Object设计模式
是Selenium自动化测试项目开发实践的最佳设计模式之一,主要体现在对界面交互细节的封装:可以使测试案例更关注于业务而非界面细节,从而提高测试案例的可读性
1.优点
- 减少代码的重复(通过对界面元素的封装减少冗余代码)
- 提高测试用例的可读性
- 提高测试用例的可维护性,特别是针对UI频繁变化的项目(若元素定位发生变化,只需要调整页面元素封装的代码)
2.背景原理
问题:在测试代码中直接操作HTML元素,代码及其脆弱,因为UI经常变动
解决方案:将page对象封装为一个HTML页面,然后通过提供的应用程序特定的API来操作页面元素,而不是在HTML中四处搜寻。
page对象的经验法则:
- 凡是人能做的事,page对象通过软件客户端都能够做到
- 即使改变具体的控件,page对象的接口也不应当发生变化
目的:通过给页面建模,使其对应用程序的使用者变得有意义。并不意味着需要针对每个页面建立一个对象,页面有重要意义的元素可以独立为一个page对象。