【Selenium+python】自动化测试登录界面

前言:已经学习selenium许久了,奈何公司的项目还在码代码中...,感觉自己学的东西快忘的差不多了,所以就找个网站练练手,顺便回顾一下UI自动化的知识,也希望跟我一样的小白有所受益。

一、用例分析(根据所测网站对应分析)

用例1:

正确输入手机号和密码,点击登录

期望:有帮助中心字样(系统跳至首页后,会有个帮助中心,也可以选择其他字样作为判定,这里不方便截图:)

用例2:

不输入手机号和密码,点击登录

期望:请输入手机号码(提示信息)

用例3:

只输入手机号不输入密码,点击登录

期望:请输入密码(提示信息)

用例4:

只输入密码不输入手机号,点击登录

期望:请输入手机号码(提示信息)

用例5:

输入错误的用户名和密码

期望:账号不存在(提示信息)

。。。。。。

当然,还有测试用例没列举完,比如特殊字符、长度等的校验,由于测试的这个网站没有相关校验(😶无奈。。),所以暂不做介绍。

二、代码编写

登录测试文件:test_klogin.py

 
  1. import unittest

  2. from selenium import webdriver

  3. import time

  4. from common.base import Base

  5. class TestKlogin(unittest.TestCase):

  6. #定位手机号

  7. username = ("name","loginName")

  8. #定位密码

  9. psw = ("name","loginPassWord")

  10. #定位登录按钮

  11. loginbutton = ("id","loginBtn")

  12. #定位帮助中心

  13. help = ("xpath","//*[contains(text(),'帮助中心')]")

  14. print("help",help)

  15. #定位提示信息

  16. message = ("className","toast-message")

  17. print("message" ,message)

  18. @classmethod

  19. def setUpClass(cls):

  20. cls.driver = webdriver.Firefox()

  21. cls.baselei = Base(cls.driver)

  22. def setUp(self):

  23. self.driver.get("url地址")

  24. def tearDown(self):

  25. # 清空cookies

  26. self.driver.delete_all_cookies()

  27. @classmethod

  28. def tearDownClass(cls):

  29. cls.driver.quit()

  30. def test_01_loginsuccess(self):

  31. '''正确输入手机号和密码'''

  32. self.baselei.send(self.username,"13000000000")

  33. self.baselei.send(self.psw,"666666")

  34. self.baselei.click(self.loginbutton)

  35. result1=self.baselei.is_element_exist(self.help)

  36. self.assertTrue(result1)

  37. def test_02_bushuru(self):

  38. '''不输入,点击登录'''

  39. self.baselei.click(self.loginbutton)

  40. result2 =self.baselei.find(self.message).text

  41. print("我是内容test02:",result2)

  42. exp2 = "请输入手机号码"

  43. self.assertEqual(result2,exp2)

  44. def test_03_shuruname(self):

  45. '''只输入手机号,不输入密码'''

  46. self.baselei.send(self.username,"12343657")

  47. self.baselei.click(self.loginbutton)

  48. result3 = self.baselei.find(self.message).text

  49. print("我是内容test03:",result3)

  50. exp3="请输入密码"

  51. self.assertTrue(result3==exp3)

  52. def test_04_shurupsw(self):

  53. '''只输入密码,不输入手机号'''

  54. self.baselei.send(self.psw,"123465")

  55. self.baselei.click(self.loginbutton)

  56. result4 = self.baselei.find(self.message).text

  57. print("我是内容test04:",result4)

  58. exp4="请输入手机号码"

  59. self.assertTrue(result4==exp4)

  60. def test_05_shurufail(self):

  61. '''输入错误的账号和密码'''

  62. self.baselei.send(self.username,"4334668")

  63. self.baselei.send(self.psw,"325465")

  64. self.baselei.click(self.loginbutton)

  65. result5 = self.baselei.find(self.message).text

  66. print("我是内容test05",result5)

  67. exp5 = "账号不存在"

  68. self.assertEqual(result5,exp5)

  69. if __name__ == '__main__':

  70. unittest.main()

base文件:base.by

 
  1. from selenium.webdriver.support.ui import WebDriverWait

  2. from selenium import webdriver

  3. class Base():

  4. def __init__(self,driver):

  5. self.driver=driver

  6. def find(self,locator):

  7. '''locator = ("id","kw"),查找某元素'''

  8. element = WebDriverWait(self.driver, 10, 1).until(lambda x: x.find_element(*locator))

  9. return element

  10. def send(self,locator,text):

  11. '''输入框传值'''

  12. self.find(locator).send_keys(text)

  13. def click(self,locator):

  14. '''点击事件'''

  15. self.find(locator).click()

  16. def is_element_exist(self,locator):

  17. '''判断元素是否存在'''

  18. els=self.finds(locator)

  19. count = len(els) #计算元素个数

  20. if len(els) < 1:

  21. return False

  22. else:

  23. print("定位到的元素个数:%s"%count)

  24. return True

三、运行结果

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值