<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] 前言 登錄這個場景在寫用例的時候經常會有,我們可以把登錄封裝成一個方法,然后把賬號和密碼參數化,這樣以后用的登錄的時候,只需調用這個方法就行了 <br /> ## 一、登錄方法 1. 把輸入賬號、輸入密碼、點擊登錄按鈕三個步驟寫成一個方法 2. 然后把輸入的賬號和密碼參數化 ``` from selenium import webdriver import unittest from time import sleep class Blog(unittest.TestCase): '''登錄博客''' def setUp(self): self.driver = webdriver.Chrome() url = "https://account.cnblogs.com/signin" self.driver.get(url) self.driver.implicitly_wait(30) def login(self, username, password): '''這里寫了一個登錄的方法,賬號和密碼參數化''' self.driver.find_element_by_id("mat-input-0").send_keys(username) self.driver.find_element_by_id("mat-input-1").send_keys(password) self.driver.find_element_by_css_selector(".mat-button-wrapper").click() sleep(3) ``` <br /> ## 二、用例 1. 下面的用例可以調用前面寫的登錄方法,這樣不用每次都去走登錄流程 2. 判斷是否登錄成功,我這里是取的登錄成功后的賬戶名 ``` def test_01(self): '''登錄案例參考:正確賬號、密碼''' self.login("梔楠", "xxxxx") # 調用登錄方法 # 獲取登錄后的賬號名稱 text = self.driver.find_element_by_id("lnk_current_user").text print(text) # 斷言實際結果與預期結果一致 self.assertEqual(text, "梔楠") def test_02(self): '''登錄案例參考:正確賬號,錯誤密碼''' self.login("梔楠", "xxxxx") # 登錄方法 # 獲取登錄后的賬號名稱 text = self.driver.find_element_by_id("lnk_current_user").text print(text) # 斷言實際結果與預期結果一致 self.assertEqual(text, "梔楠") ``` <br /> ## 三、判斷方法封裝 1. 如果用上面的方法去判斷的話,有個缺陷,當登錄不成功的時候,頁面是不會跳轉的,所以查找元素會報異常: NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"lnk\_current\_user"} 2. 這個時候就簡單封裝下判斷方法:獲取到賬戶名返回Ture;沒有獲取到返回False ``` def is_login_sucess(self): '''判斷是否獲取到登錄賬號名稱''' try: text = self.driver.find_element_by_id("lnk_current_user").text print(text) return True except: return False ``` <br /> ## 四、優化后案例 1. 優化后的登錄案例如下,這樣看起來更清楚了 ``` def test_01(self): '''登錄案例參考:正確賬號、密碼''' self.login("梔楠", "cheng19940703") # 調用登錄方法 # 判斷結果 result = self.is_login_sucess() self.assertTrue(result) def test_02(self): '''登錄案例參考:正確賬號,錯誤密碼''' self.login("梔楠", "1111") # 判斷結果 result = self.is_login_sucess() self.assertFalse(result,"密碼錯誤,斷言成功") ``` <br /> ## 五、參考代碼 ``` from selenium import webdriver import unittest from time import sleep class Blog(unittest.TestCase): '''登錄博客''' def setUp(self): self.driver = webdriver.Chrome() url = "https://account.cnblogs.com/signin" self.driver.get(url) self.driver.implicitly_wait(30) def login(self, username, password): '''這里寫了一個登錄的方法,賬號和密碼參數化''' self.driver.find_element_by_id("mat-input-0").send_keys(username) self.driver.find_element_by_id("mat-input-1").send_keys(password) self.driver.find_element_by_css_selector(".mat-button-wrapper").click() sleep(3) def is_login_sucess(self): '''判斷是否獲取到登錄賬號名稱''' try: text = self.driver.find_element_by_id("lnk_current_user").text print(text) return True except: return False def test_01(self): '''登錄案例參考:正確賬號、密碼''' self.login("梔楠", "xxxx") # 調用登錄方法 # 判斷結果 result = self.is_login_sucess() self.assertTrue(result) def test_02(self): '''登錄案例參考:正確賬號,錯誤密碼''' self.login("梔楠", "123456") # 判斷結果 result = self.is_login_sucess() self.assertFalse(result,"密碼錯誤,斷言成功") def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main() ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看