訪問一個網(wǎng)站,是需要加載時間的虎锚,加載時間的長短硫痰,也在于網(wǎng)速的快慢,為了避免一些記載時間的報錯翁都,我們需要在頁面的自動化測試當中碍论,添加一些時間等待谅猾!
第一種:顯式等待(WebDriverWait)
WebDriverWait(browser,timeout,poll_frequency=0.5,ignored_exceptions=None)
字段解釋:
browser:瀏覽器的驅(qū)動
timeout:設(shè)置最大超時時間柄慰,默認單位秒(s)
poll_frequency:檢測的間隔時間鳍悠,默認0.5秒
ignored_exceptions:超時后的異常信息,默認拋出NoSuchElementException異常
另外:WebDriverWait一般由until()或until_not()方法配合使用
WebDriverWait(browser,3).until(browser.find_element_by_id("name"),message=None).send_keys("zhangsan")
解釋:如果在HTML上找到id為name這個元素坐搔,就輸入信息“zhangsan”
WebDriverWait(browser,3).until_not(browser.find_element_by_id("name").is_displayed(), message=None)
解釋:判斷id為name這個元素是否已經(jīng)在html上消失藏研,不是肉眼可見的
第二種:隱式等待(implicitly_wait)
隱式等待是通過一定的時長等待頁面上某元素加載完成。如果超出了設(shè)置的時長元素還沒有被加載概行,則拋出NoSuchElementException異常蠢挡,如果在設(shè)置時間內(nèi)找到某元素,會馬上執(zhí)行后面的操作凳忙;
# 等待3秒
browser.implicitly_wait(3)
第三種:休眠(time.sleep)
# 等待3秒
time.sleep(3)
解釋:就算在3秒內(nèi)找到指定元素业踏,也強制等待3秒