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


前言

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

一、登錄方法

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

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

 

二、用例

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

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

 

三、判斷方法封裝

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

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

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

 

四、優化后案例

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

 

五、參考代碼

# coding:utf-8
from selenium import webdriver
import unittest
import time
class Bolg(unittest.TestCase):
    u'''登錄博客'''
    def setUp(self):
        self.driver = webdriver.Firefox()
        url = "https://passport.cnblogs.com/user/signin"
        self.driver.get(url)
        self.driver.implicitly_wait(30)

    def login(self, username, psw):
        u'''這里寫了一個登錄的方法,賬號和密碼參數化'''
        self.driver.find_element_by_id("input1").send_keys(username)
        self.driver.find_element_by_id("input2").send_keys(psw)
        self.driver.find_element_by_id("signin").click()
        time.sleep(3)

    def is_login_sucess(self):
        u'''判斷是否獲取到登錄賬戶名稱'''
        try:
            text = self.driver.find_element_by_id("lnk_current_user").text
            print text
            return True
        except:
            return False

    def test_01(self):
        u'''登錄案例參考:賬號,密碼自己設置'''
        self.login(u"上海-悠悠", u"xxxx")  # 調用登錄方法
        # 判斷結果
        result = self.is_login_sucess()
        self.assertTrue(result)

    def test_02(self):
        u'''登錄案例參考:賬號,密碼自己設置'''
        self.login(u"上海-悠悠", u"xxxx")  # 調用登錄方法
        # 判斷結果   # 交流QQ群:232607095
        result = self.is_login_sucess()
        self.assertTrue(result)


    # def test_01(self):
    #     u'''登錄案例參考:賬號,密碼自己設置'''
    #     self.login(u"上海-悠悠", u"xxxx")  # 調用登錄方法
    #     # 獲取登錄后的賬號名稱
    #     text = self.driver.find_element_by_id("lnk_current_user").text
    #     print text
    #     # 斷言實際結果與期望結果一致
    #     self.assertEqual(text, u"上海-悠悠")
    #
    # def test_02(self):
    #     u'''登錄案例參考:賬號,密碼自己設置'''
    #     self.login(u"上海-悠悠", u"oooo")  # 調用登錄方法
    #     # 獲取登錄后的賬號名稱
    #     text = self.driver.find_element_by_id("lnk_current_user").text
    #     print text       # 交流QQ群:232607095
    #     # 斷言實際結果與期望結果一致
    #     self.assertEqual(text, u"上海-悠悠")

    def tearDown(self):
        self.driver.quit()

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

 

學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429

覺得對你有幫助,就在右下角點個贊吧,感謝支持!

 selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例

(購買此書送對應PDF版本)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM