当前位置: 首页 > news >正文

Selenium中使用的三种等待

文章目录

    • 1.前言
    • 2.在selenium中常见的等待操作一般有3个

1.前言

在使用selenium时很多元素在使用的时候都需要加载,如果不等待加载结束直接使用就会报错,功能不能继续。一般解决的办法就是使用等待操作。

2.在selenium中常见的等待操作一般有3个

  • sleep
  • implicitly_wait
  • WebDriverWait

sleep 强制等待
强制等待,设置等待多长时间,就要等待多长时间,等待完成后,才会继续下一步。

implicitly_wait
智能等待(隐性等待),直接设置,在等待时间中,元素存在就执行。

driver = webdriver.Chrome()
driver.implicity_wait(30)
……

WebDriverWait
元素存在,但不一定能使用,需要满足其他条件以后才执行

from selenium.webdriver.support.wait import WebDriverWait
wait = WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_eceptions)
ele = wait.until(ES.visibility_of_element_located(EC,visibility_of_element_located((By.Id,'id_value')
……

参数
driver 浏览器驱动
timeout 等待时间
poll_frequency 轮询间隔时间
ignored_eceptions 异常信息

presence_of_element_located是等待元素加载到dom树中的方法,属于expected_conditions类。expected_conditions还提供了很多的条件判断方法:

方法说明
title_is判断当前页面的 title 是否等于预期字符串,返回布尔值
title_contains判断当前页面的 title 是否包含预期字符串,返回布尔值
presence_of_element_located判断元素是否被加到了 dom 树里(注意,加载到dom树中,并不代表这个元素可见)
visibility_of_element_located判断元素是否可见
visibility_of同visibility_of_element_located方法,只是visibility_of_element_located方法参数为locator,这个方法参数是定位后的元素
presence_of_all_elements_located判断是否至少有 1 个元素存在于 dom 树中。举例:如果页面上有 n 个元素的 class 都是’wp’,那么只要有 1 个元素存在,这个方法就返回 True
text_to_be_present_in_element判断某个元素中的 text 是否 包含 了预期的字符串
text_to_be_present_in_element_value判断某个元素中的 value 属性是否包含 了预期的字符串
frame_to_be_available_and_switch_to_it判断该 frame 是否可以 switch进去,如果可以的话,返回 True 并且 switch 进去,否则返回 False
invisibility_of_element_located判断某个元素中是否不存在于dom树或不可见
element_to_be_clickable判断某个元素中是否可见并且可点击
staleness_of等某个元素从 dom 树中移除,返回 True 或 False
element_to_be_selected判断某个元素是否被选中了,一般用在下拉列表
element_selection_state_to_be判断某个元素的选中状态是否符合预期
element_located_selection_state_to_be跟上面的方法作用一样,只是上面的方法传入定位到的 element,而这个方法传入 locator
alert_is_present判断页面上是否存在 alert
http://www.lryc.cn/news/353898.html

相关文章:

  • 推荐一款媒体影音嗅探神器—Chrome扩展插件(猫抓cat-catch)
  • LLaMA-Factory 微调训练
  • 阿里云ECS服务器怎么设置时区
  • 【698协议】帧校验算法
  • FileZilla“服务器发回了不可路由的地址,使用服务器地址代替
  • 【路径规划】基于遗传算法GA实现最短距离 多起点多终点多旅行商问题求解附Matlab代码
  • 计算机毕业设计 | springboot+vue房屋租赁管理系统(附源码)
  • 重大活动网络安全保障建设及运营指南
  • 基于信号分解方法的机械故障诊断方法存在的问题
  • faster_whisper语音识别
  • Java锁的策略
  • 521源码-免费代码基础学习-PHP如何运用变量教程
  • 单选或者多选的知识问题调研系统,怎么使用Neo4j的图数据库来实现
  • 【微机原理及接口技术】可编程并行接口芯片8255A
  • 第3天 Web源码拓展_小迪网络安全笔记
  • 基于物联网技术的智能家居实训教学解决方案
  • K-近邻算法(KNN)基础详解
  • spring aop 内部引用失效分析
  • IEDA常用快捷键(后续更新ing)
  • Day03—flask与react实现交互(解决跨域问题)
  • JavaScript中的闭包
  • python画图:matpolt,设置图片尺寸,字体大小,副坐标轴,保存
  • 如果突然失业,靠这个项目也能养活自己,6天收入3K
  • 【OpenCV 基础知识 13】高斯平滑处理图像
  • web安全渗透测试工具篇(二):sqlmap常用命令和nmap常用命令
  • STM32 USART的字符编码(发送器的实现逻辑)
  • [市赛2024-X2]自习室
  • Spring ----> IOC
  • AI重塑保险业未来:机器学习在风险评估、欺诈检测与客户服务中的深度应用
  • 某某某加固系统分析