笔记
练习用例的代码

# coding = utf-8
from selenium import webdriver
import unittest
import time
from selenium.webdriver.support.ui import Select
#登录
def login_success(self,username,password):#self.driver = webdriver.Chrome()#self.driver.get('http://127.0.0.1/mgr/sign.html')el_username=self.driver.find_element_by_id('username')el_username.clear()el_username.send_keys(username)el_password=self.driver.find_element_by_id('password')el_password.clear()el_password.send_keys(password)self.driver.find_element_by_xpath('/html/body/div/div[2]/div[1]/div[3]/div/button').click()class SMS_login(unittest.TestCase):def setUp(self):self.driver = webdriver.Chrome()self.driver.get('http://127.0.0.1/mgr/sign.html')self.driver.maximize_window()self.driver.implicitly_wait(5)#测试用例#不输入账号点击登录def test_login1(self):login_success(self,'','88888888')time.sleep(1)alert = self.driver.switch_to.alertself.assertEqual(alert.text,"请输入用户名")#输入账号不输入密码点击登录def test_login2(self):login_success(self,'byhy','')time.sleep(1)alert = self.driver.switch_to.alertself.assertAlmostEqual(alert.text, "请输入密码")#用不存在的账号byh登录def test_login3(self):login_success(self,'byh','88888888')time.sleep(1)alert = self.driver.switch_to.alertself.assertAlmostEqual(alert.text, "登录失败 : 用户名或者密码错误")#用正确的账号错误的密码登录def test_login4(self):login_success(self,'byhy','888888888')time.sleep(1)alert = self.driver.switch_to.alertself.assertAlmostEqual(alert.text, "登录失败 : 用户名或者密码错误")#用正确的账号密码成功登录,前三项菜单分别为客户药品订单def test_login5(self):login_success(self,'byhy','88888888')actual_result = ''elements = self.driver.find_elements_by_css_selector('.sidebar-menu span')for element in elements[0:3]:actual_result += ''.join(element.text)# 预期结果expected_result = '客户药品订单'#print('预期结果为: ', expected_result)# 通过try抛出异常进行断言判断try:assert expected_result == actual_result#print('UI_0101 PASS,实际结果与预期结果一致!')except: #Exception as e:    #用e来打印详细的信息return False#print('UI_0101 FAIL,实际结果与预期结果不一致!', format(e))#成功添加客户信息def test_login6(self):login_success(self,'byhy','88888888')time.sleep(1)self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/button').click()self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[1]/div[1]/input').send_keys('南京中医院')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[1]/div[2]/input').send_keys('2551867853')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[1]/div[3]/textarea').send_keys('江苏省-南京市-秦淮区-汉中路-503')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[2]/button[1]').click()self.driver.find_element_by_css_selector('.content>.col-lg-12>.col-lg-12 button:nth-child(2)').click()actual_result = ''customs = self.driver.find_elements_by_xpath('//*[@id="root"]/div/section[2]/div[3]')for a in customs:actual_result += ''.join(a.text)expected_result = '南京中医院2551867853江苏省-南京市-秦淮区-汉中路-503'try:actual_result == expected_resultexcept:return False#成功修改客户信息def test_login7(self):login_success(self, 'byhy', '88888888')time.sleep(1)self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/button').click()self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[1]/div[1]/input').send_keys('南京中医院')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[1]/div[2]/input').send_keys('2551867853')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[1]/div[3]/textarea').send_keys('江苏省-南京市-秦淮区-汉中路-503')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/div[2]/button[1]').click()self.driver.find_element_by_css_selector('.content>.col-lg-12>.col-lg-12 button:nth-child(2)').click()self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[3]/div[4]/div/label[1]').click()self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[3]/div[1]/div[1]/input').clear()self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[3]/div[1]/div[1]/input').send_keys('南京省中医院')self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[3]/div[2]/div/label[1]').click()actual_result = ''customs = self.driver.find_elements_by_xpath('//*[@id="root"]/div/section[2]/div[3]')for a in customs:actual_result += ''.join(a.text)expected_result = '南京省中医院2551867853江苏省-南京市-秦淮区-汉中路-503'try:actual_result == expected_resultexcept:return False#成功添加药品信息def test_login8(self):login_success(self, 'byhy', '88888888')time.sleep(1)self.driver.find_element_by_css_selector('[href="#/medicines"]').click()self.driver.find_element_by_css_selector('.content>.col-lg-12>button').click()self.driver.find_element_by_css_selector('.col-lg-8.col-md-8.col-sm-8 input').send_keys('青霉素盒装9')self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(2) input').send_keys('YP-32342345')self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(3) textarea').send_keys('青霉素注射液,每支15ml,40支装')self.driver.find_element_by_css_selector(' div.col-lg-12> .col-lg-12.col-md-12.col-sm-12 > button:nth-child(1)').click()actual_result = ''element = self.driver.find_elements_by_css_selector(' section> div:nth-child(3)')for a in element:actual_result += ''.join(a.text)expected_result = '青霉素盒装9YP-32342345青霉素注射液,每支15ml,40支装'try:actual_result == expected_resultexcept:return Falsedef test_login8(self):login_success(self, 'byhy', '88888888')time.sleep(1)yuanwindow = self.driver.current_window_handleself.driver.find_element_by_css_selector('footer > strong> a').click()for handle in self.driver.window_handles:self.driver.switch_to.window(handle) #先切到windowif '白月黑羽' in self.driver.title:breakself.driver.implicitly_wait(10)element = self.driver.find_elements_by_xpath('//*[@id="navbar-content"]/ul')actual_result = ''for a in element:actual_result = ''.join(a.text)expected_result = 'Python基础Python进阶图形界面Web开发自动化测试行性能测试常见问题其他'try:actual_result == expected_resultexcept:return Falseself.driver.switch_to.window(yuanwindow)#切回原窗口self.driver.find_element_by_xpath('//*[@id="root"]/header/nav/div/ul/li[2]/a/span').click()self.driver.find_element_by_xpath('//*[@id="root"]/header/nav/div/ul/li[2]/ul/li[3]/div[2]/a').click()time.sleep(2)aurl = self.driver.current_urlburl = 'http://127.0.0.1/mgr/sign.html'self.assertEqual(aurl, burl)def test_login9(self):  #UI-0108login_success(self, 'byhy', '88888888')time.sleep(1)# 先找到系统中已经存在的信息,依次删除,然后再重新添加新的药品、客户、订单等信息def del_info():els = self.driver.find_elements_by_css_selector('.search-result-item-actionbar label:nth-last-of-type(1)')if els:for element in els:element.click()self.driver.switch_to.alert.accept()time.sleep(0.5)text1= '没有找到相关记录'# 点击菜单栏订单,进入订单信息页面self.driver.find_element_by_css_selector('[href="#/orders"]').click()order = self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[3]/h4').textif order != text1:del_info()# 点击菜单栏药品,进入药品信息页面self.driver.find_element_by_css_selector('[href="#/medicines"]').click()element = self.driver.find_elements_by_xpath('//*[@id="root"]/div/section[2]/div[3]/h4')medicinal = ''for a in element:medicinal += ''.join(a.text)if medicinal != text1:del_info()# 点击菜单栏客户,进入客户信息页面self.driver.find_element_by_css_selector('[href="#/customers"]').click()element = self.driver.find_elements_by_xpath('//*[@id="root"]/div/section[2]/div[3]/h4')customs = ''for a in element:customs += ''.join(a.text)if customs != text1:del_info()self.driver.find_element_by_css_selector('[href="#/medicines"]').click()time.sleep(1)self.driver.find_element_by_css_selector('.content>.col-lg-12>button').click()#点击添加药品按钮#依次添加药品medicines_data = [['青霉素盒装1', 'YP-32342341', '青霉素注射液,每支15ml,20支装'],['青霉素盒装2', 'YP-32342342', '青霉素注射液,每支15ml,30支装'],['青霉素盒装3', 'YP-32342343', '青霉素注射液,每支15ml,40支装']]for i in range(len(medicines_data)):a = self.driver.find_element_by_css_selector('.col-lg-8.col-md-8.col-sm-8 input')a.send_keys(medicines_data[i][0])b = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(2) input')b.send_keys(medicines_data[i][1])c = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(3) textarea')c.send_keys(medicines_data[i][2])d = self.driver.find_element_by_css_selector(' div.col-lg-12> .col-lg-12.col-md-12.col-sm-12 > button:nth-child(1)')d.click()time.sleep(1)time.sleep(1)# 依次添加客户信息self.driver.find_element_by_xpath('//*[@id="root"]/aside/section/ul/li[2]/a/span').click()self.driver.find_element_by_xpath('//*[@id="root"]/div/section[2]/div[1]/button').click()customer_data = [['南京中医院1', '2551867851', '江苏省-南京市-秦淮区-汉中路-501'],['南京中医院2', '2551867852', '江苏省-南京市-秦淮区-汉中路-502'],['南京中医院3', '2551867853', '江苏省-南京市-秦淮区-汉中路-503']]for i in range(len(customer_data)):a = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(1) input')a.send_keys(customer_data[i][0])b = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(2) input')b.send_keys(customer_data[i][1])c = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(3) textarea')c.send_keys(customer_data[i][2])d = self.driver.find_element_by_css_selector('.content>.col-lg-12>.col-lg-12 button:nth-child(1)')d.click()time.sleep(1)time.sleep(1)def create_order():# 创建订单# 点击菜单栏药品,进入订单信息页面order_menu = self.driver.find_element_by_css_selector('[href="#/orders"]')order_menu.click()# 找到添加客户按钮并点击customer_button = self.driver.find_element_by_css_selector('.content>.col-lg-12>button')customer_button.click()# 订单信息order_info = {'order_name': '佩奇的订单', 'customer': '南京中医院2', 'medicine': '青霉素盒装1', 'number': '100盒'}# 输入订单名称order_name = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(1) input')order_name.send_keys(order_info['order_name'])# 创建select对象,通过select对象选中 南京中医院2customer = Select(self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(2) select'))customer.select_by_visible_text(order_info['customer'])# 创建select对象,通过select对象选中 青霉素盒装1medicines = Select(self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(3) select'))medicines.select_by_visible_text(order_info['medicine'])# 选中药品后,输入药品数量time.sleep(1)medicines_number = self.driver.find_element_by_css_selector('.col-lg-8 div:nth-child(3) div input')medicines_number.send_keys(order_info['number'])# 点击创建按钮create_button = self.driver.find_element_by_css_selector('.content>.col-lg-12>.col-lg-12 button:nth-child(1)')create_button.click()# 点击取消按钮time.sleep(1)create_button = self.driver.find_element_by_css_selector('.content>.col-lg-12>.col-lg-12 button:nth-child(2)')create_button.click()def check_order():# 取出列表中新增的订单信息order_name = self.driver.find_element_by_css_selector('.content>div:nth-of-type(3)>div:nth-of-type(1)>span:nth-child(2)')# 实际结果actual_result = order_name.text# 预期结果expected_result = '佩奇的订单'try:assert expected_result == actual_resultexcept:return Falsedef tearDown(self):#time.sleep(5)self.driver.quit()if __name__  == "__main__":unittest.main()

后续补充生成报告和发生邮件部分。

白月黑羽python+selenium之SMS系统的练习相关推荐

  1. 白月黑羽教python_白月黑羽Python在线教程

    推荐白月黑羽Python在线教程 白月黑羽 站在初学者的角度为大家安排了Python学习教程,帮助大家迅速掌握程序开发技能. http://www.python3.vip/doc/tutorial/p ...

  2. 白月黑羽python_白月黑羽Python在线教程

    推荐白月黑羽Python在线教程 白月黑羽 站在初学者的角度为大家安排了Python学习教程,帮助大家迅速掌握程序开发技能. http://www.python3.vip/doc/tutorial/p ...

  3. selenium实战 登录后跳转到外部网站,添加多个数据 (UI-0107)分享(白月黑羽网站selenium自动化学习)

    from selenium import webdriver from selenium.webdriver.support.ui import Select import time # 创建 Web ...

  4. selenium实战 登录后菜单作业分享(白月黑羽网站selenium自动化学习)

    我的作业提示:请输入用户名和请输入密码 都成功,但是登录失败3个全部错误,我找不到原因,如果有好的办法请留言,谢谢大家. from selenium import webdriver# 创建 Webw ...

  5. 白月黑羽教python之selenium:课后练习作业二

    白月黑羽教python之selenium:课后练习 最近自学了白月黑羽老师的自动化测试课程,并非课后作业的准确答案,只是为了个人学习记录,如有不足欢迎留言指点,谢谢大家. 前置条件,使用正确的管理员账 ...

  6. 白月黑羽教python之selenium:课后练习

    本博客记录了白月黑羽教python的selenium课后作业的代码,方便以后查看,希望可以帮助看到这篇博客的人,最后感谢白月黑羽老师的免费教程,讲的非常清楚! 目录 1.测试用例及代码 2.注意点 3 ...

  7. 白月黑羽教python之selenium:课后练习作业一

    白月黑羽教python之selenium:课后练习 最近自学了白月黑羽老师的自动化测试课程,并非课后作业的准确答案,只是为了个人学习记录,如有不足欢迎留言指点,谢谢大家. 测试用例截图 个人完成代码 ...

  8. 白月黑羽教python之pytest:课后练习

    本博客记录了白月黑羽教python的pytest课后作业的代码,方便以后查看,希望可以帮助看到这篇博客的人,最后感谢白月黑羽老师的免费教程,讲的非常清楚! 目录 1.测试用例表 2.代码文件布局 3. ...

  9. 白月黑羽教python_其他 | 白月黑羽教Python

    都说Python执行效率不高,为什么还要学习它? 就像你买了一辆汽车,有人却说, 汽车开的比飞机慢多了,买什么汽车啊. 然而,生活中大部分的场合,用汽车比用飞机方便的多. 同样的道理通常你开发的程序( ...

最新文章

  1. oracle10安装网络需求警告,安装oracle10出现的问题,求解!!!!!(在线等)
  2. 设计模式(2)工厂方法模式(Factory Method)
  3. Science:豆科植物如何建造“固氮工厂”?Murray组在根瘤共生机制取得重要进展...
  4. latex 常用小结
  5. Nginx 反向代理及 Cookie 相关问题
  6. java字符串操作_Java的字符串操作
  7. javascript 校验 非空_JavaScript_form表单非空验证;
  8. [转]gcc生成动态库静态库
  9. saas- -m ihrm 项目_Convertlab等企业入选腾讯SaaS加速器二期名单
  10. 【Java】时间的新旧比较
  11. 原码、反码、补码详述
  12. [转]simhash进行文本查重
  13. 使用UTL_SMTP包发送邮件
  14. Coin3D三维可视化教程4
  15. 计算机组成原理第9章,计算机组成原理第9章习题参考答案
  16. Cookie与Session基本使用
  17. k8s的优势和部署模式
  18. Rockchip PX30/RK3326 Android开机时间优化
  19. 8位数:数字、小写字母字典思考
  20. 【C语言】预处理的深入理解(第一期)

热门文章

  1. 如何使用Java实现图形用户界面(GUI)?
  2. 数据集WordNet-WN11
  3. repo init 与 repo sync 区别
  4. 计算机c盘属性不显示安全选项,Windows10系统磁盘属性没有安全选项卡(图文)
  5. 如何判断打码平台哪个好
  6. java计算机毕业设计Vue垃圾分类指南平台设计与实现源码+mysql数据库+系统+lw文档+部署
  7. 美团校招php笔试题,【美团点评】2020校招数据分析方向笔试题
  8. 锐界机器人_钱江机器人/海峰机器人/锐界科技彰显“装配”技术实力
  9. 地球半径约多少米多少千米
  10. NAT 网络地址转换 eigrp ospf 路由重分布 DHCP