Selenium的等待操作
一、隐式等待
Selenium 有一种内置的方式来自动等待元素,称为隐式等待。 可以使用浏览器选项中的超时功能或驱动程序方法(如下所示)设置隐式等待值。
这是一个全局设置,适用于整个会话的每个元素位置调用。 默认值为 ,这意味着如果找不到该元素,它将 立即返回错误。如果设置了隐式等待,驱动程序将等待 返回错误之前所提供值的持续时间。请注意,只要 元素被找到,驱动程序将返回元素引用,代码将继续执行, 因此,较大的隐式等待值不一定会增加会话的持续时间。
警告:不要混合使用隐式等待和显式等待。 这样做可能会导致不可预测的等待时间。 例如,设置 10 秒的隐式等待 以及 15 秒的显式等待 可能会导致 20 秒后发生超时。
使用隐式等待求解我们的示例如下所示:
1 driver.implicitly_wait(2)
二、显式等待
显式等待是添加到代码中的循环,用于轮询应用程序 让特定条件在退出循环之前评估为 true,并且 继续执行代码中的下一个命令。如果在指定的超时值之前未满足条件, 代码将给出超时错误。由于应用程序不处于所需状态的方法有很多, 显式等待是指定要等待的确切条件的绝佳选择 在每个地方都需要它。 另一个不错的功能是,默认情况下,Selenium Wait 类会自动等待指定元素存在。
此示例以 lambda 的形式显示正在等待的条件。Python 还支持预期条件
1 wait = WebDriverWait(driver, timeout=2) 2 wait.until(lambda d : revealed.is_displayed())
三、强制等待
强制等待是添加到代码中,当运行到该位置,代码会被强制等待预设的时间时长,当超过预设的时长时,继续往下执行
1 import time 2 3 # 预设强制等待3秒 4 time.sleep(3)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本