<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## **5.3 模塊化與參數化** 模塊化與參數化一般需要配合使用,即在創建函數或類方法時為它們設置入參,從而使它們可以根據不同的參數執行相應的操作。 下面用一個簡單的例子介紹它們的用法。創建一個郵箱測試腳本test_mail.py。 ``` from time import sleep from selenium import webdriver driver = webdriver.Chrome() driver.get("https://mail.163.com/") # 登錄 sleep(2) driver.switch_to.frame(0) # iframe_tag = driver.find_element_by_tag_name("iframe") # print(iframe_tag) driver.find_element_by_name("email").click() driver.find_element_by_name("email").send_keys("username") driver.find_element_by_name("password").clear() driver.find_element_by_name("password").send_keys("password") driver.find_element_by_id("dologin").click() # 登錄之后的動作 sleep(5) # 退出 # driver.find_element_by_id("spnUid").click() # driver.find_element_by_link_text("退出").click() driver.switch_to.default_content() driver.quit() ``` <br /> 假設要實現一個關于郵箱的自動化測試項目,那么可能每條測試用例都需要有登錄動作和退出動作。大部分測試用例都是在登錄之后進行的,例如,發郵件,查看、刪除、搜索郵件等。此時,需要創建一個新的 module.py 文件來存放登錄動作和退出動作。 ``` class Mail: def __init__(self, driver): self.driver = driver def login(self): '''登錄''' self.driver.switch_to.frame(0) self.driver.find_element_by_name("email").clear() self.driver.find_element_by_name("email").send_keys("name") self.driver.find_element_by_name("password").clear() self.driver.find_element_by_name("password").send_keys("pwd") self.driver.find_element_by_id("dologin").click() def logout(self): '''退出''' self.driver.switch_to.default_content() ``` 首先創建一個 Mail 類,在__init__()初始化方法中接收 driver 驅動并賦值給 self.driver。 在 login()和 logout()方法中分別使用 self.driver 實現郵箱的登錄動作和退出動作。 接下來修改 test_mail.py,測試調用 Mail 類中的 login()和 logout()方法。 ``` from time import sleep from selenium import webdriver from module import Mail driver = webdriver.Chrome() driver.get("https://mail.163.com/") # 調用Mail類并接收driver驅動 mail = Mail(driver) #登錄 mail.login() sleep(5) # 退出 mail.logout() driver.quit() ``` 在編寫測試用例過程中,如果需要用到登錄動作和退出動作,那么只需調用 Mail 類中的 login()方法和 logout()方法即可,這將大大提高測試代碼的可復用性。 如果我們的需求是測試登錄功能呢?雖然登錄步驟是固定的,但是測試的數據(賬號)不同,這時就需要把 login()方法參數化。修改 module.py 文件代碼如下。 ``` # ...... def login(self, username, password): '''登錄''' self.driver.switch_to.frame(0) self.driver.find_element_by_name("email").clear() self.driver.find_element_by_name("email").send_keys("username") self.driver.find_element_by_name("password").clear() self.driver.find_element_by_name("password").send_keys("password") self.driver.find_element_by_id("dologin").click() ``` 這樣就進一步提高了 login()方法的可復用性,它不再使用一個固定的賬號登錄,而是根據被調用者傳來的用戶名和密碼執行登錄動作。 在測試用例中,可以用不同的數據調用 login()方法。 ``` # 調用Mail類并接收driver驅動 mail = Mail(driver) #用戶名為空 mail.login("", "password") # 密碼為空 mail.login("zjut_cheng", "") # 用戶名/密碼錯誤 mail.login("cc", "1") ```
                  <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>

                              哎呀哎呀视频在线观看