首页 > 其他分享 >Appium的三种等待机制

Appium的三种等待机制

时间:2023-06-19 10:44:30浏览次数:34  
标签:Appium 继续执行 元素 三种 页面 等待 隐式 加载

appium三种等待方式:

   (1)强制等待

   (2)隐式等待

   (3)显式等待

 

三种等待方式之间的区别:

 1、强制等待

使用方式:time.sleep()

强制执行对应的等待时间后,才能执行下面的操作语句,影响脚本运行的速度,一般不推荐

  2、隐式等待

使用方式:driver.imolicitly_wait()

相对于强制等待来讲,较智能。设置隐式等待不影响下面脚本的执行,当元素可以被定位到,则继续执行;如果超过时长还没有定位到,则会抛出异常

隐式等待是全局的,设置时间不宜过长。当元素处于不可交互的状态时就会触发隐式等待,多次设置的话后一次会覆盖前一次。

这种方法也存在一个弊端,就是程序会一直等到整个页面加载完成才会继续执行下一步,比如某些时候想要的页面元素早就加载完了,但是由于个别JS等资源加载稍慢,此时程序仍然等待全部页面加载完成后才会继续执行下一步,无形中加长了测试用例的执行时间

3、显示等待

使用方式:

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions

WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable(element))

显式等待使用前需要先定义元素,设置显式等待,直到某个元素可以被定位条件成立后,则不再等待,继续执行下面的操作。

 

总结:

1、一般不推荐强制等待,页面确实没有定位的元素,再使用该方式更合理一些

2、显示等待和隐式等待相对来讲更智能

3、根据不同的应用场景使用不同的等待方式

标签:Appium,继续执行,元素,三种,页面,等待,隐式,加载
From: https://www.cnblogs.com/feizaiya/p/17490532.html

相关文章

  • std::thread 一:创建线程的三种方式
    前言:#include<thread>thread.join()//阻塞thread.detach()//非阻塞thread.joinable()//bool,判断线程是否支持join或者detach 正文:创建线程有三种方式,分别是:使用函数来创建线程、使用自定义的类来创建线程、使用lambda函数来创建线程 一、使用函数来......
  • python下载文件的三种方法
    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块,此外Python还提供了另外一种方法requests。下面来看看三种方法是如何来下载文件的:方法一:importurllibprint("downloadingwithurllib")url='http://download.redis.io/releases......
  • Java中线程等待和唤醒
    Java中线程等待和唤醒本文主要是对Java中线程等待、唤醒相关的内容进行总结。线程的生命周期和状态Java线程在运行的生命周期中的指定时刻只可能处于下面6种不同状态的其中一个状态:NEW:初始状态,线程被创建出来但没有被调用start()。RUNNABLE:运行状态,线程被调用了s......
  • FireDac三种方式批量添加数据的性能对比
    我有个程序,需要从CSV中读入数据,对数据进行分析后,然后插入另一个sqlite数据库的数据表。在我的程序中使用了virtualstringtree和Firedac,数据大约有13000条,需要转存的数据有11000条左右,转存的字段有8条,除了一条是boolean类型的外都是string类型。1、直接插入记录我刚开始采用的......
  • 爬取图片写入时报错--添加个等待时间
    当爬取图片时报requests.exceptions.JSONDecodeError:Invalid\escape:line29column132(char62481)这个错时,在写入的时候加个等待时间就好 ......
  • Oracle 三种分页方法
    Oracle的三层分页指的是在进行分页查询时,使用三种不同的方式来实现分页效果,分别是使用ROWNUM、使用OFFSET和FETCH、使用ROW_NUMBER()OVER()1.使用ROWNUM ROWNUM是Oracle中一个伪列,它用于表示返回的行的序号。使用ROWNUM进行分页查询的方法是在SELECT语句中加入WHERE子句,并在WHERE......
  • 编程语言的三种范式
     001、面向过程,如c、shell;性能高,代码可读性差。002、面向对象:c++、java;003、函数式编程。 面向过程编程:以过程为中心,按照一定的顺序执行程序。强调程序的执行顺序和控制流程。程序的重点在于算法和数据的处理,使用全局变量和函数进行操作。编写简单,可......
  • 解决方案 | pyautogui实现等待特定图片(对话框)出现(可设置等待超时时间)
    1、问题为了等待某个【转换完毕】的图片(对话框)出现,如何设置?   2、解决方案代码如下下面代码实现的是:设置超时时间为10s,当你在完成前序工作以后,代码开始进入等待,一旦你的特定图片出现了,马上探测到它的位置并且实现点击按钮。(注意:如果等待时间超过了10s,那么就会返回提示:T......
  • MONAI中,一定要学会的三种Dataset使用方法
    在正式学习MONAI功能函数前,以下的网址必须要收藏。1.MONAIAPI: https://docs.monai.io/en/latest/index.html作用:查询功能函数的用法,主要分为以下几类2.MONAIGitHub项目地址: https://github.com/Project-MONAI   作用:如果上述API介绍的不够完整,可以去项目里面找一些例子......
  • dilb安装的三种方法
    dilb库安装失败,源码安装嘎嘎报错,所以这里记录一下dlib库是一个很特殊的库,在下载dlib库之前需要下载两个库(cmake、boost这两个库)pipinstallcmakeboost解决办法一安装的时候制定版本号,dlib的版本号需要和虚拟环境相匹配pipinstalldilb==19.24.0如果该方法报错,直接看下......