要先知道的
通过setattr可以给类实例设置 属性和值
先看如下demo
代码如下
class BasePage:
def __init__(self):
# setattr 可以给实例设置属性值
setattr(self,"name","taoke")
setattr(self, "age", 18)
# 设置多组 属性值 [(),()]
lis1= [('logout_button', ['xpath', "//span[text()='退出']"]), ('home_button', ['xpath', '//*[text()="首页"]'])]
for key, value in lis1:
setattr(self, key, value)
# 设置多组 属性值 字典时,需要转化成 dict_items([(key,value),()]) 就类似 [(key,value),(key,value)]
dic1= {"名字":"TAOKE","Age":20}
for key, value in dic1.items():
setattr(self,key, value)
if __name__ == '__main__':
one = BasePage()
print(one.name)
print(one.age)
print(one.logout_button)
print(one.名字)
了解了以上基础知识后,就可以利用setattr 它进行做了
首先,把定位器存到yml文件
然后通过读取yml方法,读取内容,读出来格式为(如读取的是 MainPage)
{“测试”: xxx,“home_button”: xxx} 这种字典
就能把定位器名字, 和定位器值 绑定到页面实例对象属性和值了
实际效果
` 把定位器的名字,和值绑定成 页面对象的属性和值,作用不大,但可以让代码更美观把