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)

猜你喜欢

转载自blog.csdn.net/q947448283/article/details/85604345