python+selenium关于等待元素加载的一个坑

本文通过分析selenium的until方法源码和ExpectedConditions(EC)类的使用,总结了在等待元素加载时应注意的要点。方法1和2,即传入定位符列表,与until配合可行;方法3,使用lambda或直接传入处理driver的方法,也是可行的;而方法4,传入已查找的元素,由于在until执行前就会抛出找不到元素的异常,因此不可行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python+selenium关于等待元素加载的一个坑

原理-结论

查看until源码:(not_until同理)
1、由源码可知,until方法内部,说明是需要传入一个将driver 作为参数的方法。
2、继续查看源码: value = method(self.driver),method是输入参数可知:
a、传入参数 是一个将driver 作为参数的方法
b、传入参数 也可以是一个将driver 作为参数的lambda表达式
c、传入参数 也可以是一个 实现了__call
_(self, driver),并把driver作为参数的类实例(这个和until的说明和初忠不同,但源码正常执行是没问题的)
d、_ignored_exceptions 是exception实现的,会捕捉所有异常

    def __init__(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None):
        """Constructor, takes a WebDriver instance and timeout in seconds.

           :Args:
            - driver - Instance of WebDriver (Ie, Firefox, Chrome or Remote)
            - timeout - Number of seconds before timing out
            - poll_frequency - sleep interval between calls
              By default, it is 0.5 second.
            - ignored_exceptions - iterable structure of exception classes ignored during calls.
              By default, it contains
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值