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)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值