From 8c9395d6a0e07ea64a7ed88a466c5befb83178e3 Mon Sep 17 00:00:00 2001 From: 阳洁 <2077506045@qq.com> Date: 星期五, 28 七月 2023 18:42:59 +0800 Subject: [PATCH] 测评系统自动测试 --- po/member_detail_page.py | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 164 insertions(+), 0 deletions(-) diff --git a/po/member_detail_page.py b/po/member_detail_page.py new file mode 100644 index 0000000..49a6dad --- /dev/null +++ b/po/member_detail_page.py @@ -0,0 +1,164 @@ +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): + """鍒濆鍖栨椂灏唅frame鍒囨崲鍒板綋鍓嶉〉闈�""" + 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) + # 鍒囨崲鍒癮dd鐨刬frame + 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"]) + # 鍥炲埌涓婁竴灞俰frame + 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) + # 鍒囨崲鍒癳dit鐨刬frame + 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"]) + # 鍥炲埌涓婁竴灞俰frame + 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) + # 鍒囨崲鍒癳dit鐨刬frame + 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 + # 鍥炲埌涓婁竴灞俰frame + 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: + """ + # 鑾峰彇鍒皌able鐨勬墍鏈塼r + 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 + # 閭鍦╰r涓殑瀹氫綅 + email_loc = (By.XPATH, "td[4]") + # 鑾峰彇tr涓殑娴嬭瘯鍖呭悕绉� + tr_email = tr.find_element(*email_loc).text + if tr_email == memberEmail: + # 澶嶉�夋鍦╰r涓殑瀹氫綅 + 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: + """ + # 鑾峰彇鍒皌able鐨勬墍鏈塼r + 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 + # 閭鍦╰r涓殑瀹氫綅 + email_loc = (By.XPATH, "td[4]") + # 鑾峰彇tr涓殑娴嬭瘯鍖呭悕绉� + tr_email = tr.find_element(*email_loc).text + if tr_email == memberEmail: + # 澶嶉�夋鍦╰r涓殑瀹氫綅 + package_checkbox_loc = (By.XPATH, "td[1]/input") + # 鑾峰彇澶嶉�夋鍏冪礌 + tr_checkbox = tr.find_element(*package_checkbox_loc) + # 鐐瑰嚮澶嶉�夋 + tr_checkbox.click() + break -- Gitblit v1.9.1