selenium+python自動化測試--登陸

前言:已經學習selenium許久了,奈何公司的項目還在碼代碼中...,感受本身學的東西快忘的差很少了,因此就找個網站練練手,順便回顧一下UI自動化的知識,也但願跟我同樣的小白有所受益。web

 

1、用例分析(根據所測網站對應分析)cookie

用例1:學習

正確輸入手機號和密碼,點擊登陸測試

指望:有幫助中心字樣(系統跳至首頁後,會有個幫助中心,也能夠選擇其餘字樣做爲斷定,這裏不方便截圖:)網站

用例2:ui

不輸入手機號和密碼,點擊登陸url

指望:請輸入手機號碼(提示信息)spa

用例3:code

只輸入手機號不輸入密碼,點擊登陸blog

指望:請輸入密碼(提示信息)

用例4:

只輸入密碼不輸入手機號,點擊登陸

指望:請輸入手機號碼(提示信息)

用例5:

輸入錯誤的用戶名和密碼

指望:帳號不存在(提示信息)

。。。。。。

固然,還有測試用例沒列舉完,好比特殊字符、長度等的校驗,因爲測試的這個網站沒有相關校驗(😶無奈。。),因此暫不作介紹。

2、代碼編寫

登陸測試文件:test_klogin.py

import unittest from selenium import webdriver import time from common.base import Base class TestKlogin(unittest.TestCase): #定位手機號 username = ("name","loginName") #定位密碼 psw = ("name","loginPassWord") #定位登陸按鈕 loginbutton = ("id","loginBtn") #定位幫助中心 help = ("xpath","//*[contains(text(),'幫助中心')]") print("help",help) #定位提示信息 message = ("className","toast-message") print("message" ,message) @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() cls.baselei = Base(cls.driver) def setUp(self): self.driver.get("url地址") def tearDown(self): # 清空cookies  self.driver.delete_all_cookies() @classmethod def tearDownClass(cls): cls.driver.quit() def test_01_loginsuccess(self): '''正確輸入手機號和密碼''' self.baselei.send(self.username,"13000000000") self.baselei.send(self.psw,"666666") self.baselei.click(self.loginbutton) result1=self.baselei.is_element_exist(self.help) self.assertTrue(result1) def test_02_bushuru(self): '''不輸入,點擊登陸''' self.baselei.click(self.loginbutton) result2 =self.baselei.find(self.message).text print("我是內容test02:",result2) exp2 = "請輸入手機號碼" self.assertEqual(result2,exp2) def test_03_shuruname(self): '''只輸入手機號,不輸入密碼''' self.baselei.send(self.username,"12343657") self.baselei.click(self.loginbutton) result3 = self.baselei.find(self.message).text print("我是內容test03:",result3) exp3="請輸入密碼" self.assertTrue(result3==exp3) def test_04_shurupsw(self): '''只輸入密碼,不輸入手機號''' self.baselei.send(self.psw,"123465") self.baselei.click(self.loginbutton) result4 = self.baselei.find(self.message).text print("我是內容test04:",result4) exp4="請輸入手機號碼" self.assertTrue(result4==exp4) def test_05_shurufail(self): '''輸入錯誤的帳號和密碼''' self.baselei.send(self.username,"4334668") self.baselei.send(self.psw,"325465") self.baselei.click(self.loginbutton) result5 = self.baselei.find(self.message).text print("我是內容test05",result5) exp5 = "帳號不存在" self.assertEqual(result5,exp5) if __name__ == '__main__': unittest.main()

 

base文件:base.by

from selenium.webdriver.support.ui import WebDriverWait from selenium import webdriver class Base(): def __init__(self,driver): self.driver=driver def find(self,locator): '''locator = ("id","kw"),查找某元素''' element = WebDriverWait(self.driver, 10, 1).until(lambda x: x.find_element(*locator)) return element def send(self,locator,text): '''輸入框傳值''' self.find(locator).send_keys(text) def click(self,locator): '''點擊事件''' self.find(locator).click() def is_element_exist(self,locator): '''判斷元素是否存在''' els=self.finds(locator) count = len(els) #計算元素個數 if len(els) < 1: return False else: print("定位到的元素個數:%s"%count) return True

3、運行結果

相關文章
相關標籤/搜索