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
|