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

UI自动化(selenium+python)之元素定位的三种等待方式!

前言

在UI自动化过程中,常遇到元素未找到,代码报错的情况。这种情况下,需要用等待wait。

在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverWait

一、固定等待(sleep)

导入time模块,设定固定的等待时间

缺点:在网络状态良好,元素可以加载出来的情况下,依然需要等待,会导致脚本允许时间延长。

二、隐式等待(implicitly_wait)

       隐式等待是指页面元素在设定时间内全部加载完成,才能执行下一步。若超过了设定时间报异常

       缺点:页面的JS一般是放在body的最后加载的,若JS没有加载,页面想要的元素已经出现,这时还要继续等待。 

       也会影响脚本执行速度。

      

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

三、显示等待(WebDriverWait)

       通过from selenium.webdriver.support.wait import WebDriverWait 导入方法WebDriverWait()

     参数:

     driver:浏览器驱动

     timeout:最长超时时间,单位秒

     poll_frequency:监测频率时长,单位秒

     ignored_exception:忽略的异常信息,若报的是元组内的异常,则不中断代码,继续执行。若报的元组外的异常,则中断代码,停止执行。

     WebDriverWait函数中有until和until not两个方法:

    until和until not都有参数method和message。注意这里的method参数必须含有_call_(),使得类实例对象可以像调用普通函数那样,以“对象名()”的形式使用

    method:在等待时间内,每隔一段时间调用下method这个参数,判断返回值是否为True,若为True则执行下一步。

    message:超时后,报TimeoutException写入message。

    WebDriverWait与expected_conditions结合使用:

expected_conditions类提供的条件判断方法:

    除了上述expected_conditions方法,还可以使用匿名函数lambda

    lambda driver:driver.find_element(<定位元素>)

    例如:WebDriverWait(driver, 5, 1).until(lambda driver:driver.find_element_by_id('kw'))

END今天的分享就到此结束了!点赞关注不迷路~ 

相关文章:

UI自动化(selenium+python)之元素定位的三种等待方式!

前言 在UI自动化过程中&#xff0c;常遇到元素未找到&#xff0c;代码报错的情况。这种情况下&#xff0c;需要用等待wait。 在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverWait 一、固定等待(sleep) 导入time模块&#xff0c;设定固定的等待时间 缺…...

[C++]指针与结构体

标题 一.指针1.指针的定义和使用2.指针所占的内存空间3.空指针与野指针4.const修饰指针5.指针和数组6.指针和函数 二.结构体1.结构体的定义与使用2.结构体数组3.结构体指针4.结构体的嵌套使用5.结构体做函数参数6.结构体中const使用场景7.案例练习 一.指针 作用: 可以通过指针…...

注解原理是什么 Spring MVC常用的注解有哪些?

文章目录 注解原理是什么Spring MVC常用的注解有哪些&#xff1f; 通过这篇文章来和大家一起认识springMVC常用的注解&#xff0c;那么首先需要来了解注解。 注解原理是什么 注解本质是一个继承了Annotation的特殊接口&#xff0c;其具体实现类是Java运行时生成的动态代理类。…...

【数据结构】树与二叉树(廿五):树搜索指定数据域的结点(算法FindTarget)

文章目录 5.3.1 树的存储结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法1. 获取大儿子、大兄弟结点2. 搜索给定结点的父亲3. 搜索指定数据域的结点a. 算法FindTargetb. 算法解析c. 代码实现a. 使用指向指针的指针b. 直接返回找到的节点 4. 代码整合 5.3.1 树的存储结构 5.…...

深度学习图像风格迁移 - opencv python 计算机竞赛

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…...

提高SQL语句执行效率的8个方法

提高SQL语句执行效率的8个方法 在日常的数据库操作中&#xff0c;如何提高SQL语句的执行效率是每个程序员都需要关注的问题&#xff0c;SQL语句的执行效率对系统的性能有着重要影响&#xff0c;本文将介绍8种提高SQL语句执行效率的方法。 合理使用索引 索引介绍 索引是数据…...

C语言,通过数组实现循环队列

实现循环队列最难的地方就在于如何判空和判满&#xff0c;只要解决了这两点循环队列的设计就没有问题。接下来我们将会使用数组来实现循环队列。 接下来&#xff0c;为了模拟实现一个容量为4的循环队列&#xff0c;我们创建一个容量为4 1 的数组。 接下来我们将会对这个数组…...

python+pygame+opencv+gpt实现虚拟数字人直播(一)

AI技术突飞猛进&#xff0c;不断的改变着人们的工作和生活。数字人直播作为新兴形式&#xff0c;必将成为未来趋势&#xff0c;具有巨大的、广阔的、惊人的市场前景。它将不断融合创新技术和跨界合作&#xff0c;提供更具个性化和多样化的互动体验&#xff0c;成为未来的一种趋…...

c语言:模拟实现各种字符串函数(2)

strncpy函数&#xff1a; 功能&#xff1a;拷贝指定长度的字符串a到字符串b中 代码模拟实现&#xff1a; //strncpy char* my_strncpy(char* dest, char* str,size_t num) {char* ret dest;assert(dest && str);//断言&#xff0c;如果其中有一个为空指针&#xff…...

【Proteus仿真】【STM32单片机】感应水龙头设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1602液晶模块、HCSR04超声波等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示超声波模块检测的距离&#xff0c;若检测距离小…...

P15 C++ 枚举

The ChenPi 前言 今天我们要讲的是 C 中的枚举。 enum 是 enumeration 的缩写&#xff0c;基本上可以说&#xff0c;它就是一个数值集合。如果你想要给枚举一个更实际的定义&#xff0c;它们是给一个值命名的一种方法。 所以我们不用一堆叫做 A、B、C 的整数。我们可以有一个…...

深入理解路由协议:从概念到实践

路由技术是Internet得以持续运转的关键所在&#xff0c;路由是极其有趣而又复杂的课题&#xff0c;永远的话题。 SO&#xff1a;这是一个解析路由协议的基础文章。 目录 前言路由的概念路由协议的分类数据包在网络中的路由过程理解路由表的结构路由器关键功能解析 前言 在互联…...

Qt 串口编程-从入门到实战

1. Qt 串口通信流程解析 1.1 串行通信和并行通信对比 并行通信适合距离较短的通信&#xff0c;且信号容易受干扰&#xff0c;成本高串口通讯-设备&#xff08;蓝牙&#xff0c; wifi&#xff0c; gprs&#xff0c; gps&#xff09; 1.2 Qt 串口通信具体流程 1. 创建 QSerial…...

如何获得微软MVP徽章

要成为微软MVP&#xff0c;需要在特定领域成为专家&#xff0c;并积极参与社区&#xff0c;为其他人提供帮助和支持。以下是一些步骤可以帮助你成为MVP&#xff1a; 在特定领域成为专家&#xff1a;要成为MVP&#xff0c;需要在某个领域具有专业知识和经验。这可以通过阅读相关…...

Java架构师软件架构开发

目录 1 基于架构的软件开发导论2 ABSD架构方法论3 ABSD方法论具体实现4 ABSD金融业案例5 基于特定领域的软件架构开发导论6 DSSA领域分析7 DSSA领域设计和实现8 DSSA国际电商平台架构案例9 架构思维方法论概述10 AT方法论和案例想学习架构师构建流程请跳转:Java架构师系统架构…...

西南科技大学数字电子技术实验一(数字信号基本参数与逻辑门电路功能测试及FPGA 实现 )预习报告

手写报告稍微认真点写,80+随便有 目录 一、计算/设计过程 1、通过虚拟示波器观察和测量信号 2、通过实际电路(电阻、开关、发光二极管)模拟逻辑门电路 二、画出并填写实验指导书上的预表...

Java八股文面试全套真题【含答案】- SpringMVC篇

以下是一些关于Spring MVC语言的经典面试题以及它们的答案&#xff1a; 什么是Spring MVC框架&#xff1f;它的特点是什么&#xff1f; Spring MVC是基于Java的一种Web应用框架&#xff0c;用于开发基于MVC&#xff08;模型-视图-控制器&#xff09;模式的Web应用程序。它的特…...

Spring第二课响应的完全,如何理解前后端互联

目录 一、响应 Control,RestController 1.Controller的源码&#xff0c;代表什么意思 2.返回数据 Responsebody 3.返回HTML片段 4.返回JSON 5.那么假如我们使用集合会怎么样呢 设置状态码&#xff0c;虽然不影响展示&#xff0c;但是确实显示起来也就是401的情况。 2.我…...

html实现各种瀑布流(附源码)

文章目录 1.设计来源1.1 动态响应瀑布流1.2 分页瀑布流1.3 响应瀑布流 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134613121 html实现各种瀑布流(附源码)&#xff0c;…...

万字解析设计模式之责任链模式、状态模式

目录 一、责任链模式 1.1概述 1.2结构 1.3实现 1.4 优缺点 1.5应用场景 1.6源码解析 二、状态模式 2.1概述 2.2结构 2.3实现 2.4优缺点 2.5应用场景 三、责任链模式实验 任务描述 实现方式 编程要求 测试说明 四、状态模式实验 任务描述 实现方式 编程要…...

图图的嗨丝造相-Z-Image-Turbo保姆级教程:5分钟快速部署,一键生成渔网袜AI美图

图图的嗨丝造相-Z-Image-Turbo保姆级教程&#xff1a;5分钟快速部署&#xff0c;一键生成渔网袜AI美图 1. 快速了解镜像功能 图图的嗨丝造相-Z-Image-Turbo是一款专门用于生成穿大网渔网袜图片的AI模型&#xff0c;基于Z-Image-Turbo框架的LoRA版本优化而成。这个镜像通过Xin…...

CSDN博客撰写指南:如何分享你的DeOldify部署与应用实战经验

CSDN博客撰写指南&#xff1a;如何分享你的DeOldify部署与应用实战经验 写技术博客&#xff0c;尤其是分享一个像DeOldify这样酷炫的AI上色项目&#xff0c;是件特别有成就感的事。它不仅帮你梳理了知识&#xff0c;还能帮到无数和你一样踩坑的开发者&#xff0c;更能为你的技…...

PP-DocLayoutV3入门指南:5类典型失败图诊断(反光/模糊/歪斜/低对比)及应对策略

PP-DocLayoutV3入门指南&#xff1a;5类典型失败图诊断&#xff08;反光/模糊/歪斜/低对比&#xff09;及应对策略 1. 引言&#xff1a;当文档布局分析遇到“坏”图片 想象一下&#xff0c;你拿到一份重要的纸质合同&#xff0c;需要快速提取里面的关键信息。你掏出手机拍了张…...

FireRedASR-AED-L在STM32项目中的应用:离线语音指令识别原型开发

FireRedASR-AED-L在STM32项目中的应用&#xff1a;离线语音指令识别原型开发 最近在做一个智能家居控制的小项目&#xff0c;核心想法挺简单&#xff1a;对着设备说句话&#xff0c;它就能听懂并执行开关灯、调节风扇之类的操作。听起来是不是有点像智能音箱&#xff1f;但我的…...

GTE语义搜索在网络安全领域的应用:威胁情报分析系统

GTE语义搜索在网络安全领域的应用&#xff1a;威胁情报分析系统 1. 网络安全的新挑战与机遇 每天&#xff0c;安全分析师都要面对海量的威胁数据——从安全警报、漏洞报告到攻击日志&#xff0c;信息量庞大且分散。传统的关键词搜索就像是用渔网捞针&#xff0c;经常漏掉重要…...

04月07日AI每日参考:Anthropic签下史上最大算力协议,国内AI每日Token用量突破140万亿

今日概览今天AI圈有两条主线值得重点关注。海外方面&#xff0c;Anthropic与Google、Broadcom签署了迄今最大规模的算力协议&#xff0c;年化收入同步披露超300亿美元&#xff0c;算力军备竞赛进入新阶段。国内方面&#xff0c;中国国家安全部发出AI Token安全预警&#xff0c;…...

MySQL索引优化快速入门

这里需要知道什么是B树 从数据结构角度简单分析&#xff1a; 二叉树和B树可以简单理解为通过二分法减少查询的次数&#xff0c;但是仍存在严重的性能问题 1&#xff0c;插入顺序不对时&#xff0c;会退化为链表&#xff0c;时间复杂度由O(logn)变成O(n)。 2. 大数据情况下…...

别再死记硬背CAN协议了!用STM32CubeMX+USB-CAN分析仪,5分钟搞定物理层与数据链路层实战

用STM32CubeMXUSB-CAN分析仪5分钟掌握CAN核心原理 当你第一次接触CAN总线时&#xff0c;是否被那些晦涩的术语搞得一头雾水&#xff1f;显性电平、位填充、采样点、仲裁机制...这些概念在纯理论讲解中往往显得抽象难懂。但今天&#xff0c;我要带你用一种全新的方式学习CAN——…...

资源占用实测:gemma-3-12b-it在OpenClaw不同任务下的内存消耗

资源占用实测&#xff1a;gemma-3-12b-it在OpenClaw不同任务下的内存消耗 1. 测试背景与实验设计 最近在本地部署了OpenClaw框架&#xff0c;并接入gemma-3-12b-it模型作为后端引擎。作为一个追求效率的开发者&#xff0c;我特别关注这个组合在实际任务中的资源消耗情况。毕竟…...

IceC:面向嵌入式平台的轻量级ICE兼容中间件

1. IceC&#xff1a;面向资源受限嵌入式平台的轻量级ZeroC ICE兼容中间件 1.1 设计定位与工程必要性 IceC并非ZeroC ICE的全功能移植&#xff0c;而是在AVR&#xff08;如ATmega328P&#xff09;和ESP8266等典型资源受限平台约束下&#xff0c;对ICE通信模型进行深度裁剪与重构…...