PageObject模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。当页面元素id变化时,只需要更改测试页Class中页面的属性即可。
实现过程
先定义一个类,抽象类的方法,基本上重构打开网页、定位元素、操作元素三个步骤。
继承上述类,相当于实例化一个类,根据实际需求重写父类函数或者直接使用。
创建测试主函数,调用上述子类,完成测试。
有点像工厂模型
类创建时,经常要用到self,self是将要调用父类以及父类函数的实例
if__name__=='__main__':执行该代码下面的程序
#unittest.main()方法会搜索该模块下所有以test开头的测试用例方法,并自动执行它们。
#执行顺序是命名顺序:先执行test_case1,再执行test_case2
三种用例执行方式
runner.run(suite)、 unittest.main()、runner.run(discover)
#实例化BasePage类时,最先执行的就是__init__方法,该方法的入参,其实就是BasePage类的入参。#__init__方法不能有返回值,只能返回None#self只实例本身,相较于类Page而言。def__init__(self, selenium_driver, base_url, pagetitle):
self.driver=selenium_driver
self.base_url=base_url
self.pagetitle=pagetitle