1. 程式人生 > >自動化學習筆記:設定元素等待

自動化學習筆記:設定元素等待

一、顯示等待

顯示等待使用Webdriver等待某個條件成立時繼續執行,否則在達到最大時長時拋棄超時異常(TimeoutException)

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')

element = WebDriverWait(driver,5,0.5).until(
    EC.presence_of_element_located((By.ID,'kw'))
    )
element.send_keys('selenium')
#driver.quit()

WebdriverWait類是由Webdriver提供的等待方法。在設定時間內,預設每隔一段時間檢測一次當前頁面元素是否存在,如果超過設定時間檢測不到則丟擲異常。

具體格式:

WebDriveWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)

driver:瀏覽器驅動

timeout:最長超時時間,預設以秒為單位

poll_frequency:檢測的間隔(步長)時間,預設為0.5s

ingnored_exceptions:超時後的異常資訊,預設情況下拋NoSuchElementExceotion異常。

WebDriverWait()一般由ubtil()或until_not()方法配合使用,

  • until(method,message='')

呼叫該方法提供的驅動程式作為一個引數,直到返回值為True

  • until(method,message='')

呼叫該方法提供的驅動程式作為一個引數,直到返回值為False

注:在本例中,通過as關鍵字將expected_conditions重新命名為EC,並呼叫presence_of_element_located()方法判斷元素是否存在。