1. 程式人生 > >Selenium2+python自動化48-登錄方法(參數化)

Selenium2+python自動化48-登錄方法(參數化)

self. element rom test web () _id sse 圖片

前言

登錄這個場景在寫用例的時候經常會有,我們可以把登錄封裝成一個方法,然後把賬號和密碼參數化,這樣以後用的登錄的時候,只需調用這個方法就行了

一、登錄方法

1.把輸入賬號、輸入密碼、點擊登錄按鈕三個步驟寫成一個方法

2.然後把輸入的賬號和密碼參數化

技術分享圖片

二、用例

1.下面的用例可以調用前面寫的登錄方法,這樣不用每次都去走登錄流程

2.判斷是否登錄成功,我這裏是取的登錄成功後的賬戶名

技術分享圖片

三、判斷方法封裝

1.如果用上面的方法去判斷的話,有個缺陷,當登錄不成功的時候,頁面是不會跳轉的,所以查找元素會報異常:

NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"lnk_current_user"}

2.這個時候就簡單封裝下判斷方法:獲取到賬戶名返回Ture;沒有獲取到返回False

技術分享圖片

四、優化後案例

1.優化後的登錄案例如下,這樣看起來更清楚了

技術分享圖片

五、參考代碼

 1 # coding:utf-8
 2 from selenium import webdriver
 3 import unittest
 4 import time
 5 class Bolg(unittest.TestCase):
 6     u‘‘‘登錄博客‘‘‘
 7     def setUp(self):
 8         self.driver = webdriver.Firefox()
 9         url = "
https://passport.cnblogs.com/user/signin" 10 self.driver.get(url) 11 self.driver.implicitly_wait(30) 12 13 def login(self, username, psw): 14 u‘‘‘這裏寫了一個登錄的方法,賬號和密碼參數化‘‘‘ 15 self.driver.find_element_by_id("input1").send_keys(username) 16 self.driver.find_element_by_id("
input2").send_keys(psw) 17 self.driver.find_element_by_id("signin").click() 18 time.sleep(3) 19 20 def is_login_sucess(self): 21 u‘‘‘判斷是否獲取到登錄賬戶名稱‘‘‘ 22 try: 23 text = self.driver.find_element_by_id("lnk_current_user").text 24 print text 25 return True 26 except: 27 return False 28 29 def test_01(self): 30 u‘‘‘登錄案例參考:賬號,密碼自己設置‘‘‘ 31 self.login(u"上海-悠悠", u"xxxx") # 調用登錄方法 32 # 判斷結果 33 result = self.is_login_sucess() 34 self.assertTrue(result) 35 36 def test_02(self): 37 u‘‘‘登錄案例參考:賬號,密碼自己設置‘‘‘ 38 self.login(u"上海-悠悠", u"xxxx") # 調用登錄方法 39 # 判斷結果 # 交流QQ群:232607095 40 result = self.is_login_sucess() 41 self.assertTrue(result) 42 43 # def test_01(self): 44 # u‘‘‘登錄案例參考:賬號,密碼自己設置‘‘‘ 45 # self.login(u"上海-悠悠", u"xxxx") # 調用登錄方法 46 # # 獲取登錄後的賬號名稱 47 # text = self.driver.find_element_by_id("lnk_current_user").text 48 # print text 49 # # 斷言實際結果與期望結果一致 50 # self.assertEqual(text, u"上海-悠悠") 51 # 52 # def test_02(self): 53 # u‘‘‘登錄案例參考:賬號,密碼自己設置‘‘‘ 54 # self.login(u"上海-悠悠", u"oooo") # 調用登錄方法 55 # # 獲取登錄後的賬號名稱 56 # text = self.driver.find_element_by_id("lnk_current_user").text 57 # print text # 交流QQ群:232607095 58 # # 斷言實際結果與期望結果一致 59 # self.assertEqual(text, u"上海-悠悠") 60 61 def tearDown(self): 62 self.driver.quit() 63 64 if __name__ == "__main__": 65 unittest.main()

Selenium2+python自動化48-登錄方法(參數化)