Python+selenium等待某个元素消失(如加载中)再继续执行代码

news2024/11/19 3:46:10

之前我们分享过利用selenium,等待某个元素出现在执行代码,点我跳转,那么如果是等待某个元素消失再执行某个代码该如何操作呢,我们看一下需求!

如下图,我在点击查询按钮后,整个页面都在加载中,那么查询的数据量有多有少,就会造成等待时间的差异,也可以理解为:当页面出现【加载中】表示页面数据还未加载完成,当【加载中】消失后,则表示,整个页面数据加载完毕

在这里插入图片描述

这时我们需要用到的是:

使用WebDriverWait对象等待元素的消失,并使用presence_of_element_located方法来定位要等待的元素。如果元素在指定的时间内没有消失,那么就会抛出一个超时异常

element = wait.until(EC.presence_of_element_located((By.ID, 'element_id'))),这里可以用By.xpath,或者其他的,大家自己决定
# 等待元素的消失
wait = WebDriverWait(driver, 10)element = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="root"]/div/div[6]/div/div[1]/div/div[2]/div/div[1]/div/div/div')))
while element.is_displayed():
	pass
    
# 元素消失后,继续执行后续代码
print("元素已经消失,继续往下运行")

所以我们可以趁页面还在加载中时,快速将【加载中】这个元素,利用点击元素——右击——Copy—— Copy Xpath,将该元素的xpath复制下来。

最后再加上try——except,实现代码功能

在这里插入图片描述
在这里插入图片描述

我的代码(局部)

判断加载中是否消失,最大等待时间25秒,如果还在就会报错,如果已近消失,就会继续执行下面的代码!!

try:
    wait = WebDriverWait(driver, 2)
    element = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="root"]/div/div[6]/div/div[1]/div/div[2]/div/div[1]/div/div/div')))
    while element.is_displayed():
        pass

    print("加载中已消失")
except:
    print("发生异常:")

更多的关于selenium的小知识,大家可以去我的selenium专栏看一下:点我跳转

在这里插入图片描述

希望对大家有帮助

致力于办公自动化的小小程序员一枚#

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/946309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ASP.NET】LIS实验室信息管理系统源码

LIS系统,即实验室信息管理系统,是一种基于互联网技术的医疗行业管理软件,它可以帮助实验室进行样本管理、检测流程管理、结果报告等一系列工作, 提高实验室工作效率和质量。 一、LIS系统的功能 1. 样本管理 LIS系统可以帮助实验…

用反射实现自定义Java对象转化为json工具类

传入一个object类型的对象获取该对象的class类getFields方法获取该类的所有属性对属性进行遍历,并且拼接成Json格式的字符串,注意:通过属性名来推断方法名获取Method实例通过invoke方法调用 public static String objectToJsonUtil(Object o…

轻松搭建微信小程序商城的详细指南

微信小程序商城是目前非常流行的一种电商模式,它能够为用户提供便捷的购物体验,同时也成为了很多企业开展电商业务的首选方式。那么,如何快速、简单地搭建一个微信小程序商城呢?下面就为大家介绍一下详细的步骤。 首先&#xff0c…

分布式系统,你了解多少呢

本期只是简单了解,想要深入学习,还需要看看其他资源~ 目录 一、单机架构 二、数据库和应用分离 三、负载均衡——应用服务器 四、读写分离——数据库主从结构 五、引入缓存——冷热数据分离 六、分库分表——数据库扩展空间 七、微服务——进一步…

性能测试常见的测试指标

一、什么是性能测试 先看下百度百科对它的定义 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能…

Rtab-map

Rtab-map -- 开源 2014 about 如何实现闭环检测 可视化slam 应用于摄像头上 原理:数据结构,点中存储彩色图,深度图,和用来做odomtry得位置,可以认为图片,location和image都是点 将图片解析为一些feature…

摄像头的调用和视频识别

CV_tutorial3 摄像头调用实时播放保存视频 运动目标识别帧差法背景减除法 摄像头调用 创建视频捕捉对象:cv2.VideoCapture() 参数为视频设备的索引号,就一个摄像投的话写0默认; 或者是指定要读取视频的路径。 实时播放 import cv2 import …

【算法】经典的八大排序算法

点击链接 可视化排序 动态演示各个排序算法来加深理解,大致如下 一,冒泡排序(Bubble Sort) 原理 冒泡排序(Bubble Sort)是一种简单的排序算法,它通过多次比较和交换相邻元素的方式,将…

实战 图书馆系统管理案例

config :敏感的配置一般都是在配置中心配置,比如consul或者阿波罗上面controller :写一些handler的,拿到参数要去调用service层的逻辑。(只负责接受参数,怎么绑定参数,要去调用哪个service的&am…

QT6修改程序图标和名字以及打包部署

首先确定已经编译成功无错误 修改窗口的名字 修改图标 当有pro工程文件时, 只需要将ico文件放在工程文件的同级文件夹中,然后在pro文件中加入RC_ICONSico文件的名字 当使用cmake建立工程时 参考:https://blog.csdn.net/chqaz123/article…

PowerBuilder调用外部VB6 ActiveX EXE公共对象

学习的同时习练PowerBuilder对VB6 ActiveX exe公共对象的调用,初步感觉PowerBuilder调用DLL还是要求比较严格的,APP和powerbuilder本身都比较脆弱、易崩溃,因此, 1. 直接调用外部DLL时,传递地址参数,尽量不…

音频接口电路的PCB设计注意事项

Audio接口是音频插孔,即音频接口,可分为Audio in接口和Audio out接口。音频接口是连接麦克风和其他声源与计算机的设备,其在模拟和数字信号之间起到了桥梁连接的作用。 其余走线要求如下: 1、所有CLK信号建议串接22ohm电阻&#…

【零基础算法】Vector动态数组

为什么开始先更新数据结构?博主其实一开始也不怎么喜欢调这些数据,觉得用C语言造轮子才是最好的。后面学习过程中学习的算法逐渐复杂,实际上会发现,了解和调用一些已经写好的库工具是很方便的一件事,我们需要做的是知道…

计算机竞赛 基于机器视觉的手势检测和识别算法

0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng…

伺服电机驱动器EMC处理方案

伺服驱动器内部也有低压单元, 很可能受到驱动器外围设备的噪音干扰,受到干扰的信号可能会引起设备做出意想不到的动作 为防止伺服驱动器和其外围设备之间的相互电磁干扰, 可根据采取以下的对策: ● 请务必使驱动器及电机良好的接…

USB与蓝牙通信原理图设计

蓝牙模块设计: USB2.0 ----ESD保护芯片---- USB转串口芯片(CP2104-F03-GMR)--------- PTR5618蓝牙模块 ---------- PTR5618的GPIO0\GPIO1作为IIC与EEPROM芯片通信 (AT24CS04-STUM-T) 磁珠的作用是一直EMI干扰。 一…

《Go 语言第一课》课程学习笔记(十二)

函数 Go 函数与函数声明 在 Go 语言中,函数是唯一一种基于特定输入,实现特定任务并可返回任务执行结果的代码块(Go 语言中的方法本质上也是函数)。在 Go 中,我们定义一个函数的最常用方式就是使用函数声明。 第一部…

虚拟直播从0到1全套解决方案,码住这个神器,小白也能轻松涨粉过万!

直播行业历经十余年生长,用户规模持续上升,成为平台经济领域的中流砥柱。同时,元宇宙的兴起也推动了虚拟现实等先进技术在直播行业的应用,越来越多的老板开始尝试使用虚拟直播完成各类形式的直播活动,与传统型的直播间…

Web核心基础总结

尚硅谷课程:293-尚硅谷-Filter-什么是Filter过滤器_哔哩哔哩_bilibili JavaWeb核心技术点: Servlet程序、Filter过滤器、Listener监听器、jsp页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求, 第一…

独立服务编排逻辑引擎:jvs-logic服务原子组件介绍

逻辑引擎的本质是可视化的服务编排是指使用图形化工具、配置和管理原子服务间的工作步骤和调用关系。这种方法可以快速的实现业务功能,使非开发人员也能轻松地创建和管理服务的工作流程。 可视化服务编排工具提供了直观的界面和丰富的功能,以及便捷的执行…