瀏覽器等待
1) 為什么要進行等待崎场?
1.網(wǎng)速慢
2.網(wǎng)站內(nèi)容過多
3.如果不進行等待而直接定位元素协怒,可能會拋出異常
2) selenium中等待的分類:
顯示等待
顯示等待是根據(jù)條件進行等待闻牡,等待條件出現(xiàn)
WebDriverWait類是由WebDirver 提供的等待方法。在設(shè)置時間內(nèi),默認每隔一段時間檢測一次當前頁面元素是否存在,如果超過設(shè)置時間檢測不到則拋出異常碱璃。
案例
WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.CLASS_NAME,"g-hu")))
隱式等待
隱式等待是根據(jù)是件進行等待,等待特定時間
driver.implicitly_wait(n)
n的單位為秒,n為最大值,在這個最大值內(nèi)只要該界面上的全部元素都加載完成定就結(jié)束沒有加載出元素就拋出? NosuchException.
注意:優(yōu)先隱式等待饭入,次之顯式等待嵌器,最次固定等待
PO模型介紹
在自動化中,Selenium自動化測試中有一個名字經(jīng)常被提及PageObject(思想與面向?qū)ο蟮奶卣飨嗤?谐丢,通常PO模型可以大大提高測試用例的維護效率
優(yōu)點:重用爽航,業(yè)務和對象分離,代碼結(jié)構(gòu)清晰乾忱,方便代碼維護
PO的核心要素
在PO模式中抽離封裝集成一個BasePage類讥珍,該基類應該擁有一個只實現(xiàn)webdriver實例的屬性
每一個page都繼承BasePage,通過driver來管理本page中元素窄瘟,將page中的操作封裝成一個個方法
TestCase繼承unittest.Testcase類衷佃,并依賴page類,從而實現(xiàn)相應的測試步驟
總結(jié)
PO設(shè)計模式中的BasePage基類對應案例中的BasePage.py文件
PO模式中的pages中的案例顯示Search.py
PO模式設(shè)計中TestCase對應案例中的TestCase.py