EC模块与WebDriverWait结合使用
  sSGzMYbedQdL 2023年11月02日 48 0

selenium中,经常会出现元素还没有加载出来,浏览器找不到元素而报错的问题,设置等待是保证脚本运行的一个重要手段,常用的等待有三种–强制等待、隐式等待、显示等待。 本文主要介绍显示等待和EC模块结合使用

一、强制等待,也可以叫做固定等待,就是我们常用的sleep(),多用于调试、观察效果等,实际项目中不推荐使用

二、隐式等待driver.implicitly_wait(最大等待时间x秒)

参数是最大等待时间,只要在此规定时间内整个页面加载完成即可操作元素 设置一次,则全局(对应浏览器的整个生命周期内)生效,所以一般在打开浏览器后立即设置。

缺点:实际操作中你需要定位的元素已经加载完成,但其他元素未加载完成,也只能继续等待,相对(显示等待)来说会浪费时间。

三、显示等待WebDriverWait

隐式等待,它是针对某个(或某组)具体的元素,看它是否具备了一定的特征,就开始有所动作了。 显示等待也有最大等待时间,并提供了轮询间隔,等待条件成立。 默认轮询间隔是0.5秒,即每隔0.5秒程序就看一眼条件成立没。 语法如下所示:

1、直接用 WebDriverWait(driver,20,0.5).until(可执行方法,超时后返回的信息)

2、结合EC(expected_conditions)模块 WebDriverWait(driver,20,0.5).until(EC.方法)

EC模块与WebDriverWait结合使用_EC和WebDriverWait

EC模块与WebDriverWait结合使用_EC和WebDriverWait_02

EC模块与WebDriverWait结合使用_EC和WebDriverWait_03

EC模块与WebDriverWait结合使用_EC和WebDriverWait_04

# text_to_be_present_in_element_value((By.ID,locator),str_pre):判断定位到的元素的value值是否等于预期的str_pre<
# element_to_be_clickable:判断一个元素是否可以点击,可点击需符合2个条件,一、元素可见;二、使能,即元素的is_enabled()为True

EC模块与WebDriverWait结合使用_EC和WebDriverWait_05

EC模块与WebDriverWait结合使用_EC和WebDriverWait_06

原文链接:https://blog.csdn.net/weixin_45422695/article/details/123329201

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
sSGzMYbedQdL
最新推荐 更多