1. 程式人生 > >selenium的隱式等待和顯式等待及cookie操作

selenium的隱式等待和顯式等待及cookie操作


頁面等特:
現在的網頁越來越多采用了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)