yj
2024-07-25 204169e8cae389613ea35c4ec3a0c89998679e70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
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):
        """初始化时将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