让我们来探讨探讨三种等待时间原理及场景
在使用web端自动化实施的过程中,常常会遇到页面还没加载完毕,脚本已经执行了,导致用例执行失败,为了确保页面加载完毕后再执行下一个脚本,我们通常采用设置等待的时间的方式来实现,设置等待时间通常有三种模式:
第一种是强制等待:time模块的time.sleep(n)方法
第二种是隐式等待:driver对象的implicity_wait()方法
第三种是显式等待:selenium.webdriver.support.ui模块提供的WebDirver Wait类

实现方法:
(1) 强制等待:driver.sleep()
(2)隐式等待:driver.implicitly_wait()
(3)强制等待:WebDriverWait(driver,总数量,间隔时间).until(EC.present_to_element_located),((By.XPATH(‘定位数据’)))

1.隐式等待:
implicity_wait()方法在自动化执行过程中,为查找页面元素或者执行命令设置一个最长 等待时间,如果在规定的时间内页面元素被找到或者命令执行 完成,则执行下一步,否则继续等待直到设定的最长等待时间;隐式等待的好处是不用像强制等待方法一样 死等固定时间,可以在一定程度上提升测试用例的效率,不过这种方法也存在一个弊端,就是程序会一直等到整个页面加载完成才会继续执行下一步,比如某些时候想要的页面元素早就加载完了,但是由于个别JS等资源加载稍慢,此时程序仍然后等待全部页面加载完成后才会继续执行下一步,无形中加长了测试用例的执行时间;

2.显示等待:
WebDirver Wait类工作原理:程序会每隔一段时间(该段时间一般都很短,默认为0.5秒,也可以自定义)执行一下自定义的判定条件,如果条件成立,就执行下一步,否则继续等待,知道超过设定的最长等待时间,然后抛出异常;

3.强制等待:
原理:设置固定的等待时间,使用方便,只对本行的元素有查找作用,如果在设定的时间内查找到元素,则继续执行下边的代码,如果未在规定的时间内完成加载则抛出异常,需要频繁设置,会延长代码运行时间;
场景:设置固定休眠时间,无论脚本有没有执行成功都必须等待,一般适用于调试脚本,可以清楚每一步的操作步骤,同时脚本调试也方便。
————————————————
版权声明:本文为CSDN博主「YangJ_KK」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Y_JingYi/article/details/109607441

三种等待时间原理及场景相关推荐

  1. 联邦学习的基本概念、三种框架和应用场景

    联邦学习的基本概念.三种框架和应用场景 前言 本文主要总结记录了联邦学习的基本概念.三种基本框架及其应用场景,下篇将从威胁模型和攻防现状入手介绍联邦学习的安全隐私现状- 一.提出背景 需求: 人工智能 ...

  2. 第七节: EF的三种事务的应用场景和各自注意的问题(SaveChanges、DBContextTransaction、TransactionScope)

    一. 什么是事务 我们通俗的理解事务就是一系列操作要么全部成功.要么全部失败(不可能存在部分成功,部分失败的情况). 举一个事务在我们日常生活中的经典例子:两张银行卡(甲.乙),甲向乙转钱,整个过程需 ...

  3. VMware Workstation网络连接的三种方式原理详解 与 配置过程图解

    VMware workstations为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们 ...

  4. 打散算法的三种解决方案及其选型场景

    简介:打散算法优缺点及选型场景 作者:闲鱼技术-华采 背景 打散是在推荐.广告.搜索系统的结果基础上,提升用户视觉体验的一种处理.主要方法是对结果进行一个呈现顺序上的重排序,令相似品类的对象分散开,避 ...

  5. selenium的三种等待时间

    //隐式等待(20秒以内没哥一段时间就会去找元素,如果没找大也不会报错,过了20s才会报错)//driver.manage().timeouts().implicitlyWait(20, TimeUn ...

  6. 快速排序的三种实现以及应用场景

    好了,废话不多说,直接上干货. 1.快速排序的概念: 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Horno在1962年提出.它的基本思想是:通过一趟排序将要排 ...

  7. git reset 的三种模式的使用场景

    一.前提 参考:建议先阅读:Git Reset 三种模式 这篇文章只是我的的一个笔记 二.三种模式 git reset --soft git reset --mixed git reset --har ...

  8. 打散算法的三种解决方案及其选型场景(转载自“闲鱼技术”)

    背景 打散是在推荐.广告.搜索系统的结果基础上,提升用户视觉体验的一种处理.主要方法是对结果进行一个呈现顺序上的重排序,令相似品类的对象分散开,避免用户疲劳.算法端传出的推荐结果,往往具有以下几个痛点 ...

  9. 树的三种遍历原理及实现

    树的三种遍历 一棵树的三种遍历方式:先序遍历,中序遍历,后序遍历. 前中后三种顺序其实指的是根的顺序. 先序遍历:根节点.左子树.右子树 中序遍历:左子树.根节点.右子树 后序遍历:左子树.右子树.根 ...

最新文章

  1. Python--日志模块
  2. 如何用一句话证明你学过 NLP ?
  3. rsync+sersync实现数据文件实时同步
  4. split python
  5. 【转载】COM 组件设计与应用(四)——简单调用组件
  6. cmd文件 c语言的段,对于TMS320F2812的CMD文件的理解
  7. SpringBoot之集成MybatisPlus
  8. 多语言调用之 Java调用C/C++
  9. c# 保存数据到txt (追加)
  10. Struts2.3.1.2安装
  11. Ubuntu上安装ns2-2.34
  12. H5网页实现录音并转换为文字
  13. php判断4的倍数,4的倍数特征(4的倍数特征规律怎样找)
  14. Oracle11g RAC集群重启操作
  15. 【协程】MyCoroutine轻量级协程框架代码详细剖解
  16. Jetson Xavier NX——重新刷系统
  17. 数据可视化ECharts:饼形图2 地区分布模块制作(南丁格尔玫瑰图)
  18. vim格式化html代码
  19. 自上而下面向能力的编程思想
  20. soj 3172 Fisherman (01背包的装满)

热门文章

  1. 2022云计算真题: OpenStack Glance运维--镜像格式转换
  2. “安居客“住房系统-基于Python-Django前后端分离开发(三)——前后端代码联调
  3. 1.MySQL安装与配置
  4. MSP430程序库三12864液晶程序库
  5. Android HandlerThread例程
  6. accept函数详解
  7. 玲珑杯 Round #20
  8. Jboss账号密码、jboss网站跟目录、Jboss弱口令
  9. 嵌入式Linux——oops:根据oops信息,找到错误的产生位置以及函数的调用关系
  10. 天鸟技术中台-建设过程-日常经验6:一个系统总是存在,core核心业务和not-core非核心业务