自動化學習筆記:設定元素等待
阿新 • • 發佈:2018-12-17
一、顯示等待
顯示等待使用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()方法判斷元素是否存在。