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

來源:互聯網
上載者:User

標籤:判斷   name   driver   ref   use   pre   一個   自己   select   

前言

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

一、登入方法

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").text24             print text25             return True26         except:27             return False28 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群:23260709540         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").text48     #     print text49     #     # 斷言實際結果與期望結果一致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").text57     #     print text       # 交流QQ群:23260709558     #     # 斷言實際結果與期望結果一致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-登入方法(參數化)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.