cuiying

从0开始一步步搭建selenium+python+pymysql+HTMLTestRunner 自动化测试框架(六)

到目前为止所有的工具都准备好了,让我们来写一个真正的用例吧:新建一个机构

# coding=utf-8

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
@author: cuiying
Project: 云中医 selenium自动化测试
'''
# 3.导入模块
import time
import unittest
from automation_framework.framework.browser_engine import BrowserEngine
from automation_framework.logger.logger import Logger
from automation_framework.pageobjects.loginPage import get_login
from automation_framework.framework.db_init import connect
logger = Logger(logger="new_dep").getlog()

class new_dep(unittest.TestCase):

def test__new__dep(self):

# 登录
self.driver = get_login("user1", "testServer1")
#登录成功后页面
current_window = self.driver.current_window_handle # 获取当前窗口handle name
all_windows = self.driver.window_handles
for window in all_windows:
if window != current_window:
self.driver.switch_to.window(window)
current_window = self.driver.current_window_handle # 获取当前窗口handle name
time.sleep(2) # 暂停
# 选择应用列表//*[@id="lr_applist_content"]/div[1]/ul/li[4]/i
self.driver.find_element_by_xpath('//*[@id="lr_applist_content"]/div[1]/ul/li[4]/i').click()
# 选择机构管理
self.driver.find_element_by_xpath('//*[@id="lr_applist_slidebox"]/ul[4]/li[1]/div[2]').click()
time.sleep(2)
self.driver.switch_to.frame("lr_iframe_8") # 定位到最新的tab 页
self.driver.find_element_by_xpath('//*[@id="lr_add"]/i').click()

self.driver.switch_to.default_content() # 回到主框架
self.driver.switch_to.frame("layui-layer-iframe1") # 定位到最新的弹出窗页
time.sleep(2) # 弹窗出现后,使页面等待2S
# 输入机构信息
self.driver.find_element_by_id('F_FullName').send_keys("自动化新增机构")
self.driver.find_element_by_xpath('//*[@id="F_ShortName"]').send_keys("自动化新增机构中文名")
self.driver.find_element_by_class_name('lr-select-placeholder').click()
self.driver.find_element_by_xpath('//*[@id="learun_select_option_contentF_Nature"]/li[2]').click()

self.driver.switch_to.parent_frame()
self.driver.find_element_by_xpath('//*[@id="layui-layer1"]/div[3]/a[1]').click()

# 判断是否成功
# 通过数据库查询验证新增成功
conn = connect("database1")
# 获取数据库游标
cur = conn.cursor()
cur.execute('''
select * from doctorincloud_workstation.lr_base_company c
where c.F_FullName = '自动化新增机构'
''')
num = cur.rowcount
logger.info("You had select %s lines." % num) # 日志打印你查询条数

try:
assert num >= 1
logger.info("database connect successfully .")
except Exception as e:
logger.info("database connect Fail.%s" % format(e)) # 日志打印你查询条数

time.sleep(10)
# driver.quit() #关闭并退出浏览器
# 删除测试数据
cur.execute('''
delete from doctorincloud_workstation.lr_base_company
where F_FullName = '自动化新增机构'
''')
conn.commit()
conn.close()

if __name__ == '__main__':
unittest.main()

posted on 2020-07-29 14:06  summer_cy  阅读(97)  评论(0编辑  收藏  举报