• python教程:selenium WebDriver 中的几种等待


    嗨喽,大家好呀~这里是爱看美女的茜茜呐

    强制等待:sleep()

    import time
    sleep(5)  #等待5
    • 1
    • 2

    设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。

    缺点:

    不智能,使用太多的sleep会影响脚本运行速度。


    👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

    python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


    隐式等待:implicitly_wait()

    driver.implicitly_wait(10) #隐式等待10
    • 1

    由webdriver提供的方法,一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用,

    它不针对某一个元素,是全局元素等待,即在定位元素时,需要等待页面全部元素加载完成,才会执行下一个语句。

    如果超出了设置时间的则抛出异常。

    缺点:

    当页面某些js无法加载,但是想找的元素已经出来了,它还是会继续等待,

    直到页面加载完成(浏览器标签左上角圈圈不再转),才会执行下一句。

    某些情况下会影响脚本执行速度。

    显示等待:WebDriverWait()

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    需要通过

    from selenium.webdriver.support.wait import WebDriverWait
    
    • 1

    导入模块

    • driver:浏览器驱动

    • timeout:最长超时时间,默认以秒为单位

    • poll_frequency:检测的间隔步长,默认为0.5s

    • ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常。

    与until()或者until_not()方法结合使用
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    WebDriverWait(driver,10).until(method,message="")
    #调用该方法提供的驱动程序作为参数,直到返回值为True
    
    WebDriverWait(driver,10).until_not(method,message="")
    #调用该方法提供的驱动程序作为参数,直到返回值为False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在设置时间(10s)内,等待后面的条件发生。如果超过设置时间未发生,则抛出异常。在等待期间,每隔一定时间(默认0.5秒),调用until或until_not里的方法,直到它返回True或False.

    WebDriverWait与expected_conditions结合使用
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    wait = WebDriverWait(driver,10,0.5)
    element =waite.until(EC.presence_of_element_located((By.ID,"kw"),message="")
    # 此处注意,如果省略message=“”,则By.ID外面是两层()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    expected_conditions类提供的预期条件判断的方法

    显示等待,自定义等待条件

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    #设置等待
    wait = WebDriverWait(driver,10,0.5)
    #使用匿名函数
    wait.until(lambda diver:driver.find_element_by_id('kw'))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    尾语

    感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

    希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

    躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

    最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

  • 相关阅读:
    Go语言Slice(切片)
    技术干货|昇思MindSpore初级课程上线:从基本概念到实操,1小时上手!
    学习笔记|IO中断|中断号大于31|中断优先级|简易中央门禁|STC32G单片机视频开发教程(冲哥)|第十六集:IO中断
    新建excel出现由于找不到vcruntime140_1.dll,无法继续执行代码。系统错误
    C语言参数类型
    [蓝桥杯 2021 省 AB2] 负载均衡
    什么是并行执行 以 Aptos、Sui、Linera 和 Fuel 为例给你讲透
    React之组件实例的三大属性之props
    微信非群管理员,我实现了@所有人
    动态规划一
  • 原文地址:https://blog.csdn.net/m0_72282564/article/details/133825565