等待时间Python

显式等待Code

显性等待是对指定元素进行等待的一种等待方式。通过设置最大等待时间,检查频率对页面的元素来进行等待,一旦找到元素,则停止等待,进入后续步骤。

它主要的意思就是:程序每隔X秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException异常。

关键句:WebDriverWait(driver,5,1).until(lambda x:x.find_element_by_id(“kw”))

from telnetlib import EC

from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

from time import ctime
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Chrome()
# driver.implicitly_wait(5)
driver.get("https://www.baidu.com/")

try:
    WebDriverWait(driver,5,1).until(lambda  x:x.find_element_by_id("kw"))
except NoSuchElementException as e:
    print(e)
finally:
    print(ctime())
    driver.quit()

运行结果

在这里插入图片描述

隐式等待Code

隐式等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间结束,然后再执行下一步操作。

使用方法:driver.implicitly_wait(X)。在X时间内,页面加载完成,进行下一步操作。只要设置一次即可。

from time import ctime
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com/")
try:
    print( ctime() )
    driver.find_element_by_xpath("//*[@id='kw']").send_keys("csdn")
    driver.find_element_by_xpath("//*[@id='su']").click()

except NoSuchElementException as e:
    print(e)
finally:
    print(ctime())
    driver.quit()

运行结果

在这里插入图片描述

强制等待

强制等待是最简单的一种等待方式,强制让浏览器等待X秒,不管当前操作是否完成,是否可以进行下一步操作,都必须等X秒的时间。

使用方法:time.sleep(X)或者sleep(X)。在python中是基于time模块的sleep方法来实现。

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_link_text("亚运上百度  为拼搏喝彩").click()
time.sleep(5)
driver.quit()

运行结果

在这里插入图片描述

总结

效率:显式等待 > 隐式等待 > 强制等待
关键代码:
try:
    WebDriverWait(driver,5,1).until(lambda  x:x.find_element_by_id("kw"))
except NoSuchElementException as e:
    print(e)
finally:
    print(ctime())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值