今天主要是用了pageobject设计模式,对于这种模式,我的理解是每个待测页面当成一个独立的部分,每个页面的操作在每个页面定义,在unittest的testcase中的逻辑只体现用户的操作流程,比如,登录这个事件,定位用户名、密码并输入这些细节操作放在page.class中定义,testcase中只要调用登录的函数即可。每个页面都有的通用操作,可以在Pagebase中定义,每个页面继承Pagebase。
遇到的问题一:
setup()中定义了driver, pagebase中_ini_()方法没有初始化driver,导致在testcase中,报错have no attribute ‘driver’,setup()中定的driver传给LoginPage(self.driver),但是_ini_()方法没有初始化driver,需要加一句,self.driver=driver
问题二:
元组传参,报错xxhave 2position arguements but 3given,调用的函数值要传入两个参数,却错误的传入了3个,是因为元组传参出错引起的,
login方法中调用wait_element方法,self.waitLoginFrame是一个元组,waitLoginFrame =(By.ID,'J_loginIframe'),所以调用函数传参时前面带星号,而定义的函数
wait_element中需要的是元组类型就不需要加星号,如果不需要元组,前面带个星号解包
示例: