selenium的隱式等待和顯式等待及cookie操作
阿新 • • 發佈:2019-01-10
頁面等特:
現在的網頁越來越多采用了Ajax技術,這樣程式便不能確定何時某個元素完全加載出來,入股實際頁面等待時間過長導致某個dom元素還沒出來,但是你的程式碼直接使用了這個 Webelement,那麼就會上Nullpointerf的異常,為了解決這個問題,所以 Selenium提
供了兩種等待方式:一種是隱式等待、一種是式等待
1.隱式等待:呼叫 driverim.plicitly_wait。那麼在取不可用的元素之前,會先等待10秒中的時間。示例程式碼如下
driver=webdriver.Chrome(executable_Path=driver.path) driver.implicitly_wait(10)
#請求網頁
driverget("https://www.douban.com/")
2.顯示等待:顯示等待是表明某個條件成立後才執行獲取元素的操作。也可以在等待的時候指定一個最大的時間,如果超過這個時間那麼就出一個異常,顯示等情應該使用 selenium.webdrlver.support.excepted_conditions的條件
和 selenium.webdriver.support.ui.Weboriverwait來配合完成,示例程式碼加下:
from selentum import webdriver from selenium.webdriver.comeon.by import By from selenium.webdriver.support import Driverwait from selenium. webdriver. support import exected_conditions as EC driver=webdriver.Firefox driver.get("http://somedoeoin/urlthatdelaysloading") try: element = Webdriverwait(driver,10).until{} EC.presence_of_element_locate((By.ID, "myDynamicelement")) finally: driver.quit()
cookie操作:
1.獲取所有的cookie:
for cookie indriver.get_cookies():
print(cookie)
2.根據cookie的key獲取value
value = driver.get_cookie(key)
3.刪除所有的cookie:
driver.delete_all_cookies()
4.刪除某個cookie
driver.delete_cookie(key)