from base.base_page import BasePage from selenium.webdriver.common.by import By from elements.member_detail_elements import MemberDetailElements from datetime import datetime import time class MemberDetailPage(BasePage): """ 测试包列表页面 """ es = MemberDetailElements def __init__(self, driver): """初始化时将iframe切换到当前页面""" super().__init__(driver) try: self.driver.switch_to.default_content() self.switch_iframe(self.es.this_iframe) except: pass def add_member(self, data: dict): """ 新增测评人员 :param data: :return: """ # 点击新增按钮 self.click(self.es.create_btn) # 切换到add的iframe self.switch_iframe(self.es.add_iframe) # 填写信息 self.fill(self.es.add_member_name_input, data["name"]) self.fill(self.es.add_member_dept_input, data["dept"]) self.fill(self.es.add_member_email_input, data["email"]) self.fill(self.es.add_member_phone_input, data["phone"]) self.fill(self.es.add_remark_input, data["remark"]) # 回到上一层iframe self.switch_parent_iframe() # 点击确定按钮 self.click(self.es.add_confirm_btn) return data["email"] def edit_member(self, memberEmail, data: dict): """ 修改测评人员 :param memberEmail: :param data: :return: """ # 勾选测评人员 self.select_email_checkbox(memberEmail) # 点击修改按钮 self.click(self.es.edit_btn) # 切换到edit的iframe self.switch_iframe(self.es.edit_iframe) # 填写信息 self.fill(self.es.add_member_name_input, data["name"]) self.fill(self.es.add_member_dept_input, data["dept"]) self.fill(self.es.add_member_email_input, data["email"]) self.fill(self.es.add_member_phone_input, data["phone"]) self.fill(self.es.add_remark_input, data["remark"]) # 回到上一层iframe self.switch_parent_iframe() # 点击确定按钮 self.click(self.es.edit_confirm_btn) return data["email"] def is_edit_success(self, memberEmail, data: dict): """判断是否修改成功""" # 勾选测评人员 self.select_email_checkbox(memberEmail) # 点击修改按钮 self.click(self.es.edit_btn) # 切换到edit的iframe self.switch_iframe(self.es.edit_iframe) # 判断信息 flag = self.equals(self.es.add_member_name_input, data["name"]) if not flag: return flag flag = self.equals(self.es.add_member_dept_input, data["dept"]) if not flag: return flag flag = self.equals(self.es.add_member_email_input, data["email"]) if not flag: return flag flag = self.equals(self.es.add_member_phone_input, data["phone"]) if not flag: return flag flag = self.equals(self.es.add_remark_input, data["remark"]) if not flag: return flag # 回到上一层iframe self.switch_parent_iframe() # 点击关闭按钮 self.click(self.es.edit_cancel_btn) return True def is_create_success(self, memberEmail): """判断是否创建成功""" emails = self.get_eles(self.es.table_email_td) for email in emails: if email.text == memberEmail: return True return False def is_remote_success(self): """判断是否删除成功""" def select_email_checkbox(self, memberEmail): """ 选中评测人员 :param memberEmail: :return: """ # 获取到table的所有tr table_trs = self.get_eles(self.es.table_data_tr) for tr in table_trs: # 判断复选框是否为选中状态 tr_class = tr.get_attribute("class") if tr_class == "selected": # 已点击进行下一次循环 continue # 邮箱在tr中的定位 email_loc = (By.XPATH, "td[4]") # 获取tr中的测试包名称 tr_email = tr.find_element(*email_loc).text if tr_email == memberEmail: # 复选框在tr中的定位 package_checkbox_loc = (By.XPATH, "td[1]/input") # 获取复选框元素 tr_checkbox = tr.find_element(*package_checkbox_loc) # 点击复选框 tr_checkbox.click() break def unselect_email_checkbox(self, memberEmail): """ 选中评测人员 :param memberEmail: :return: """ # 获取到table的所有tr table_trs = self.get_eles(self.es.table_data_tr) for tr in table_trs: # 判断复选框是否为选中状态 tr_class = tr.get_attribute("class") if tr_class != "selected": # 已点击进行下一次循环 continue # 邮箱在tr中的定位 email_loc = (By.XPATH, "td[4]") # 获取tr中的测试包名称 tr_email = tr.find_element(*email_loc).text if tr_email == memberEmail: # 复选框在tr中的定位 package_checkbox_loc = (By.XPATH, "td[1]/input") # 获取复选框元素 tr_checkbox = tr.find_element(*package_checkbox_loc) # 点击复选框 tr_checkbox.click() break