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
from hytest.common import SELENIUM_LOG_SCREEN
from 运维集控.项目测试.运维标准版.lib.base import *
#构建当前项目路径
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', '..')))
# 构建 CSV 文件的绝对路径
csv_path = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', '..', 'testdata', '02用户管理', '新增用户.csv'))
class UserAdd:
tags = ['新增用户']
#构建框架的数据集格式
ddt_cases = read_csv_data(csv_path)
def teststeps(self):
wd = GSTORE['wd']
#从self.para中解构出数据
name = self.name
account, user_name, new_passwd, comfire_passwd, authority, user_number, phone, email, remark, info= self.para
STEP(1, '点击新增按钮')
user_add = WebDriverWait(wd, 10).until(
EC.element_to_be_clickable(
(By.XPATH, "//div[@class='company-edmit-right']//span[contains(text(),'新增')]"))
)
user_add.click()
sleep(2)
STEP(2, f'填写登录名: {account}')
account_input = WebDriverWait(wd, 20).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='登录名以字母开头,长度在5-18之间,只能包含字母、数字和下划线、@']"))
)
account_input.clear()
account_input.send_keys(account)
STEP(3, f'填写用户名称: {user_name}')
user_name_input = WebDriverWait(wd, 20).until(
EC.presence_of_element_located(
(By.XPATH, "//div[@class='el-input el-input--suffix']//input[@placeholder='请输入名称']"))
)
user_name_input.clear()
user_name_input.send_keys(user_name)
STEP(4, f'填写新的密码: {new_passwd}')
new_passwd_input = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='必须包含字母(不区分大小写)、数字和特殊字符,至少8个字符']"))
)
new_passwd_input.clear()
new_passwd_input.send_keys(new_passwd)
STEP(5, f'填写确认密码: {comfire_passwd}')
comfire_passwd_input = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='请确认密码']"))
)
comfire_passwd_input.clear()
comfire_passwd_input.send_keys(comfire_passwd)
STEP(6, f'选择权限: {authority}')
authority_select = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//span[@class='el-radio__label'][contains(text(),'普通用户')]"))
)
authority_select.click()
STEP(7, f'填写用户工号: {user_number}')
user_number_input = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='请输入工号']"))
)
user_number_input.clear()
user_number_input.send_keys(user_number)
STEP(8, f'填写手机号: {phone}')
phone_input = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='请输入手机号码']"))
)
phone_input.clear()
phone_input.send_keys(phone)
STEP(9, f'填写邮箱: {email}')
email_input = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='请输入邮箱']"))
)
email_input.clear()
email_input.send_keys(email)
STEP(10, f'填写备注: {remark}')
remark_input = WebDriverWait(wd, 10).until(
EC.presence_of_element_located(
(By.XPATH, "//input[@placeholder='备注']"))
)
remark_input.clear()
remark_input.send_keys(remark)
STEP(11, '点击“确认”按钮')
commit = WebDriverWait(wd, 10).until(
EC.element_to_be_clickable(
(By.XPATH, "//div[@aria-label='新增']//span[contains(text(),'确 定')]"))
)
commit.click()
STEP(12, f'预期提示内容为:{info}')
STEP(13, '获取页面实际提示内容')
get_menu = WebDriverWait(wd, 10).until(
EC.visibility_of_element_located(
(By.XPATH, "//p[@class='el-message__content']"))
)
get_menu1 = get_menu.text
CHECK_POINT('校验实际提示内容和预期提示内容是否一致', get_menu1 == info)
# 截图并保存
SELENIUM_LOG_SCREEN(wd, "50%")
wd.refresh()