老师,关于封装读取配置文件的问题,我按照教程封装了读取ini文件配置ReadIni(),假如我有N个页面,我想把每个页面里的元素都用.ini文件保存,并根据不同的页面去读取。现在有个问题就是,我在不同的页面封装页面操作的基本方法的时候,需要先确保读取的是当前页面的ini文件,否则无法找到配置项。
我现在的做法是在每个页面类将get_ini()这个方法实例化,代码结构如下:
class BasePage():
def __init__(self,driver):
self.driver=driver
def get_ini(self,page_name)
#获取不同页面的ini文件
global INI
if page_name == "Page1"
INI = ReadIni(filename="Page1.ini",node="Page1Element")
if page_name == "Page2"
INI = ReadIni(filename="Page2.ini",node="Page2Element")
def find_element(self,key):
#定位元素方法
data = INI.get_value(key)
by = data.split('>')[0]
value = data.split('>')[1]
...#后面省略了,跟教程差不多
class Page1(BasePage):
def __init__(self,driver):
super().__init__(driver)
self.driver = driver
self.get_ini("Page1")
class Page2(BasePage):
def __init__(self,driver):
super().__init__(driver)
self.driver = driver
self.get_ini("Page2")
但是这样有个问题,有时候不同页面直接会有共用同一个方法的情况;比如我在操作Page1的时候,调用了Page2里的某个方法,这样INI就会变成Page2的;再回头取Page1的INI就会报错。
请问这种情况有什么好的方法去避免呢?
P.S. 我之前是用的更粗暴的方法是每个页面类前面先调用一次ReadIni(),比如Page1_Ini=ReadIni(filename=“Page1.ini”,node=“Page1Element”)
然后将Page1_Ini.get_value(key)整个函数作为参数传到find_element()方法里,但是这样看起来太繁琐了,所以放弃了,想了现在的方法,但是依然有这种问题,希望老师能给出更好的解决方法,谢谢!