selenium等待的三种方式(详细)

news2024/9/20 6:41:29

1.强制等待

time.sleep(3)

这种方式会是操作强行等待3s才会进行下一步操作,但是这种放法,可能会延长测试的时间,如果元素在1s中出现,就会浪费2s的时间,并且这种放法单次有效,每次需要等待元素的操作都需要加个方法,不推荐这种放法

time.sleep(1) wd.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div[3]/div[1]/i').click()

2.隐式等待

dirver.implicitly_wait(30)

设置一个最长等待时间,如果页面所有内容在规定时间内加载出来就执行下一步 ,这个方法也有个弊端就是,你想要的元素其实已经加载出来,但是有其他的js,css等加载时间比较久就会影响测试进度

wd.implicitly_wait(30)

3.显示等待

设置一个最大等待时间,没隔一段时间去检查元素是否出现,出现的话就执行操作,如果超过最大时间就抛出异常。这个方法最推荐!

导包:

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as ECS

from selenium.webdriver.common.by import By

使用:

loc=(By.XPATH,'//*[@id="app"]/div[1]/div[2]/div[2]/div[1]/i') WebDriverWait(wd,3).until(ECS.presence_of_element_located(loc))#显性等待,直到要找到的元素被找到才执行下一步 wd.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div[2]/div[1]/i').click()

其中等待判断还有一些方法:

  • presence_ _of_ element_ located:元素 存在
  • vibility _of_ element_ located: 元素可见
  • element _to_ be_ clickable: 元素可点击

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

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

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

相关文章

如何打造亚马逊一流新品运营方案?

优化亚马逊新品运营方案需要商家采取一系列策略,以在激烈的市场竞争中脱颖而出。以下是一些针对亚马逊新品运营的优化建议: 1.深入了解产品和市场: 在上线新品之前,商家需要对产品和市场进行深入了解。了解目标客户群体、市场需…

重要通知|关于JumpServer开源堡垒机V2版本产品生命周期的相关说明

JumpServer(https://github.com/jumpserver)开源项目创立于2014年6月,已经走过了九年的发展历程。经过长期的产品迭代,JumpServer已经成为广受欢迎的开源堡垒机。 JumpServer堡垒机遵循GPL v3开源许可协议,是符合4A&a…

微信小程序radio单选按钮选中与取消

wxml <view bindtapcheckedTap><radio checked"{{checked}}">设为默认</radio> </view> wxss <style lang"less" > radio .wx-radio-input {border-radius: 50%; /* 圆角 */width: 24rpx;border: 2rpx solid #5e5e5f;hei…

网安周报 | 银行业成为开源软件供应链攻击的目标

网安周报是棱镜七彩推出的安全资讯专栏&#xff0c;旨在通过展示一周内发生的与开源安全、软件供应链安全相关攻击事件&#xff0c;让用户了解开源及软件供应链威胁&#xff0c;提高对安全的重视&#xff0c;做好防御措施。 1、银行业成为开源软件供应链攻击的目标 网络安全研…

nn.BCELoss与nn.CrossEntropyLoss

BCELoss与CrossEntropyLoss都是用于分类问题。可以知道&#xff0c;BCELoss是Binary CrossEntropyLoss的缩写&#xff0c;BCELoss是CrossEntropyLoss的一个特例&#xff0c;只用于二分类问题&#xff0c;而CrossEntropyLoss可以用于二分类&#xff0c;也可以用于多分类&#xf…

文档管理NAS储存安全吗?

关键词&#xff1a;私有化、知识管理系统、文档管理、群晖NAS、协同编辑 随着企业不断发展扩大&#xff0c;企业的知识文档也逐渐增多&#xff0c;很多企业方便管理及考虑数据安全问题会将文件数据储存至NAS。 但将企业文档数据放在NAS上就足够安全的吗&#xff1f; 天翎文档管…

【快应用】通用方法getBoundingClientRect的使用

【关键词】 快应用开发、通用方法、getBoundingClientRect 【背景】 快应用通用方法中提供了getBoundingClientRect方法来获取当前组件的布局位置&#xff0c;之前处理的快应用问题中&#xff0c;有个cp却把这种场景误解为可以获取到文字的宽度和高度&#xff0c;这是不合理的…

在线平面设计工具盘点,提升效率首选

在移动应用程序或网页UI设计项目中&#xff0c;在线平面图工具是必不可少的。市场上的在线平面图工具绘制软件丰富多样&#xff0c;层出不穷。作为一名UI设计师&#xff0c;有必要了解哪些在线平面图工具既简单又专业。本文将分享6种在线平面图工具&#xff0c;每种在线平面图工…

Vue 加载远程组件的解决方案

背景 最近的项目有一个加载远程组件的需求。基于此我对 Vue 加载远程组件的方案进行了研究&#xff0c;并且整理了两个可行的解决方案。 HTML 文件 umd 组件 这个方案是最简单、最容易实现的。组件以 umd 的格式进行打包&#xff0c;然后在 HTML 文件中直接使用。 <div…

Glide原理分析

工程目录图 Glide源码分析 - 缓存源码分析 活动缓存 &#xff1a;当前activity有效内存缓存&#xff08;LRU算法&#xff0c;核心linkhashmap&#xff09;,当前运行的整个app生命周都有效&#xff0c;有大小限制&#xff0c;防止app oom磁盘缓存&#xff0c;整个app都有效&…

汇编语言(第4版)实验9 根据材料编程

参考答案&#xff1a; ①经分析&#xff0c;完整程序代码如下。 assume cs:codesg,ds:datasgdatasg segment db welcome to masm! datasg endscodesg segment start: mov ax,0b800hmov es,axmov si,0722hmov ax,datasgmov ds,axmov cx,16mov bx,0s: mov al,ds:[bx]mov ah,0…

语音识别 — 特征提取 MFCC 和 PLP

一、说明 语音识别是一种技术&#xff0c;通过计算机和软件系统&#xff0c;将人们的口头语言转换为计算机可读的文本或命令。它使用语音信号处理算法来识别和理解人类语言&#xff0c;并将其转换为计算机可处理的格式。语音识别技术被广泛应用于许多领域&#xff0c;如语音助手…

Spring学习之Spring启示录

文章目录 OCP开闭原则依赖倒置原则控制反转依赖注入DI OCP开闭原则 什么是OCP&#xff1f; OCP是软件七大开发原则当中最基本的一个原则&#xff1a;开闭原则对什么开&#xff1f;对拓展开对什么闭&#xff1f;对修改关系 如果为了一个功能拓展&#xff0c;需要修改之前运行良…

项目播报 | 新基德携手璞华易研PLM,打造企业新一代研发管理平台

近日&#xff0c;“新基德PLM&#xff08;Product Lifecycle Management&#xff0c;产品生命周期管理&#xff09;项目”在新基德&#xff08;深圳&#xff09;电子有限公司&#xff08;以下简称&#xff1a;新基德&#xff09;正式启动。新基德是一家集手机研发、生产、销售、…

2023 数字生态发展大会,和鲸 ModelWhale 入选中国信通院“铸基计划”《高质量数字化转型产品及服务全景图》

7月27日&#xff0c;由中国信通院主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中会议在北京召开。本次大会重磅发布了《高质量数字化转型产品及服务全景图&#xff08;2023&#xff09;》&#xff0c;和鲸科技旗下数据科学协同平台 ModelWhale 成功入选&#xff…

android jetpack DataStore(java)代替SharedPreferences

目录 Preferences DataStore 怎么用&#xff1f;导入依赖创建 Preferences DataStore读取内容写入内容 Proto DataStore怎么用&#xff1f;导入依赖创建proto创建Serializer使用DataStore DataStore 提供两种不同的实现&#xff1a;Preferences DataStore 和 Proto DataStore。…

【C语言进阶】重新认识字符型变量

引例 首先我们看一个简单的例子 #include <stdio.h> #include <stdlib.h>int main() {double x4 2023.727;char c (int)x4 / 10;printf("c%6c\tc%6hd\n",abs(c),abs(c));return 0; } }这小例子的结果是多少呢&#xff1f; 结果是 “c 6 c 54” 有知…

医学案例|单因素重复测量方差

一、案例介绍 为研究某诱导方法对患者收缩压的影响&#xff0c;将手术要求基本相同的15名患者&#xff0c;在手术过程中采用A麻醉诱导方法&#xff0c;并在T0&#xff08;诱导前&#xff09;、T1、T2、T3、T4五个时刻测量患者的收缩压&#xff0c;试着进行方差分析。 二、问题…

小程序相较于APP,广告变现有哪些优势?

对于开发者而言&#xff0c;微信小程序开发门槛相对较低&#xff0c;难度不及APP&#xff0c;能够满足简单的基础应用&#xff0c;适合生活服务类线下商铺以及非刚需低频应用的转换。 和早期相比&#xff0c;今天小程序在产品功能、UI设计、交互体验等方面&#xff0c;越来越精…

python_day16_装饰器

装饰器基础写法 def outer(func):def inner():print("睡眠")func()print("起床")return innerdef sleep():import timeprint("睡眠中、、、")time.sleep(5)f1 outer(sleep) f1()装饰器语法糖 def outer(func):def inner():print("休息一…