【自动化测试】:python子类继承多个父类的问题

一、问题描述:

一个找回密码的页面:需要首先从登录界面跳转到找回密码页面,然后在找回密码页面输入手机号的自动化测试案例

因为每个页面都是封装好的,页面结构大致如下:

page_obj
|_______base.py
|_______loginPage.py
|_______findpasswordPage.py
login_sta.py
findpassword_sta.py

base.py是一个基础页面,包含对页面元素的操作函数,打开浏览器等;

loginPage.py是对页面元素的一些操作;

findpasswordPage.py是对找回密码页面元素的一些操作;

login_sta.py 是登录页面的测试用例;

findpassword.py是找回密码的测试用例;

因为找回密码涉及到先从登录页面跳转到找回面页面,有一个准备动作,

所以在findpasswordPage试图操作loginPage的元素时候,必须让findpasswordPage集成loginPage的类.

二、

在loginPage.py的login类中,继承了base.py的Page类,
class login(Page):
在findpasswordPage.py的findpassword类中,继承了base.py的Page类,同时也继承了loginPage.py的login类,
class findpassword(login, Page):

如果findpassword的类继承携程
class findpassword(Page,login):
会提示一个错误:TypeError: Cannot create a consistent method resolution order (MRO) for bases Page, login
原因是:
按照这种写法,会导致无法确认类之间的关系,会导致继承关系混乱

findpassword类的继承改为
class findpassword(login, Page):
则问题解决。

 

posted @ 2019-05-10 17:06  fy-  阅读(3494)  评论(0)    收藏  举报