1 from time import sleep
2 from lib.webui import *
3
4
5 class UI_0101:
6 name = '检查操作菜单 UI_0101'
7
8 def teststeps(self):
9 STEP(1, '登录网站')
10 open_browser()
11 mgr_login()
12
13 STEP(2, '获取左边菜单栏')
14 wd = GSTORE['wd']
15 eles = wd.find_elements(By.CSS_SELECTOR, '.sidebar-menu span')
16 menuText = [ele.text for ele in eles]
17 INFO(menuText)
18 STEP(3, '检查左边菜单栏')
19 CHECK_POINT('检查菜单是否正确', ['客户', '药品', '订单'] == menuText[:3])
20 wd.quit()
21
22
23 class UI_0102:
24 name = '添加客户 UI_0102'
25
26 def teststeps(self):
27 STEP(1, '登录网站')
28 open_browser()
29 mgr_login()
30
31 STEP(2, '点击左侧客户菜单')
32 wd = GSTORE['wd']
33 # 先找到上层节点,缩小查找范围
34 sidebarMenu = wd.find_element(By.CLASS_NAME, 'sidebar-menu')
35
36 # 再找到内部元素
37 elements = sidebarMenu.find_elements(By.TAG_NAME, 'span')
38
39 # 第一个span对应的菜单是 客户,点击它
40 elements[0].click()
41
42 STEP(3, '添加客户')
43
44 # 点击添加客户按钮
45 wd.find_element(By.CLASS_NAME, 'glyphicon-plus').click()
46
47 # form-contorl 对应3个输入框
48 inputs = wd.find_elements(By.CSS_SELECTOR, '.add-one-area .form-control')
49
50 # 输入客户姓名
51 inputs[0].send_keys('南京中医院')
52 # 输入联系电话
53 inputs[1].send_keys('2551867858')
54 # 输入客户描述
55 inputs[2].send_keys('江苏省-南京市-秦淮区-汉中路-16栋504')
56
57 # 第1个 btn-xs 就是创建按钮, 点击创建按钮
58 wd.find_element(By.CSS_SELECTOR, '.add-one-area .btn-xs').click()
59
60 # 等待1秒
61 sleep(1)
62
63 STEP(4, '检查添加信息')
64
65 # 找到 列表最上面的一栏
66 item = wd.find_elements(By.CLASS_NAME, 'search-result-item')[0]
67
68 fields = item.find_elements(By.TAG_NAME, 'span')[:6]
69
70 texts = [field.text for field in fields]
71 INFO(texts)
72
73 # 预期内容为
74 expected = [
75 '客户名:',
76 '南京中医院',
77 '联系电话:',
78 '2551867858',
79 '地址:',
80 '江苏省-南京市-秦淮区-汉中路-16栋504'
81 ]
82
83 CHECK_POINT('客户信息和添加内容一致 ',
84 texts == expected)
85
86 wd.quit()
- 冗余代码提取到了lib下面的webui.py文件中
1 from selenium import webdriver
2 from hytest import *
3 from selenium.webdriver.common.by import By
4
5
6 def open_browser():
7 INFO('打开浏览器')
8 options = webdriver.ChromeOptions()
9 options.add_experimental_option('excludeSwitches', ['enable-logging'])
10
11 wd = webdriver.Chrome(options=options)
12 wd.implicitly_wait(10)
13
14 GSTORE['wd'] = wd
15
16
17 def mgr_login():
18 wd = GSTORE['wd']
19
20 wd.get('http://127.0.0.1/mgr/sign.html')
21
22 wd.find_element(By.ID, 'username').send_keys('byhy')
23 wd.find_element(By.ID, 'password').send_keys('88888888')
24
25 wd.find_element(By.TAG_NAME, 'button').click()