Selenium的PageObject设计模式(2)
一、代码与数据分离的方式(一)
1.excel做数据源时表格设计
2.读取出excel文件内元素组装成数组形式返回
conf = ConfigUtils() elements_path=conf.get_elements_url class ElementExcelData: def __init__(self, sheet_name, element_path=elements_path): self.element_path = element_path # 打开excel文件 self.workbook = xlrd.open_workbook(self.element_path) # sheet页名 self.sheet = self.workbook.sheet_by_name(sheet_name) # 获取行数 self.row_count = self.sheet.nrows def get_element_info(self): elements_info={} for i in range(1, self.row_count): element_info = {} element_info[‘element_name‘] = self.sheet.cell_value(i, 1) element_info[‘locator_type‘] = self.sheet.cell_value(i, 3) element_info[‘locator_value‘] = self.sheet.cell_value(i, 4) element_info[‘timeout‘] = int(self.sheet.cell_value(i, 5)) elements_info[self.sheet.cell_value(i, 0)] = element_info return elements_info def get_page_info(sheet_name): element_data = ElementExcelData(sheet_name) elements = element_data.get_element_info() return elements
3.读取excel为数据源
# 读取excel为数据源 elements = get_page_info(‘Login‘) class LoginPage(BasePage): def __init__(self,driver): super().__init__(driver) # 方式三: self.username_inputbox = elements[‘username_inputbox‘] self.password_inputbox = elements[‘password_inputbox‘] self.login_button = elements[‘login_button‘]
二、代码与数据分离的方式(二)
1.yaml文件做数据源时.yml设计方式
2.读取出yaml文件内元素
conf = ConfigUtils() elements_yaml_url=conf.get_elements_yaml_url class ElementYamlData: def __init__(self, sheet_name, element_path=elements_yaml_url): self.sheet_name =sheet_name # 打开yaml文件 self.file = open(element_path, ‘r‘, encoding=‘utf-8‘) # 读出yaml文件全部内容 self.yaml_content = self.file.read() def read_yaml(self): yaml_list = yaml.load(self.yaml_content,Loader=yaml.FullLoader) elements = yaml_list[self.sheet_name] return elements
3.读取yaml文件为数据源
# 读取yaml文件为数据源 element_infos = ElementYamlData(‘LoginPage‘) elements=element_infos.read_yaml() class LoginPage(BasePage): def __init__(self,driver): super().__init__(driver) # 方式三: self.username_inputbox = elements[‘username_inputbox‘] self.password_inputbox = elements[‘password_inputbox‘] self.login_button = elements[‘login_button‘]
相关推荐
Feastaw 2020-06-18
云之高水之远 2020-06-14
xiangxiaojun 2020-09-23
Reiki 2020-08-16
letheashura 2020-08-14
tiankele0 2020-07-29
curiousL 2020-07-18
王练 2020-07-18
tiankele0 2020-07-18
amei0 2020-07-08
Reiki 2020-07-06
Ronnyxie 2020-07-06
xiangxiaojun 2020-07-05
zhanghaibing00 2020-06-28
xiongyouqiang 2020-06-28
Ronnyxie 2020-06-27
amei0 2020-06-26
letheashura 2020-06-26