appium中的等待方式使用

背景:

首先,由于一个网速和手机性能以及服务器反应时间等等的原因,不可能导致我们点击了某一个元素之后,它所要链接的页面马上弹出来可以进行下一步操作。所以我们需要一种等待方式,直至链接的页面跳出来之后再进行下一步操作。

解决方法:
appium中的操作方式有3种,接下来我将介绍一下较简单的2中等待的使用方法:

第一种(强制等待):

使用方法:time.sleep(10)
解释:强制等待的方式,不管你的下一个页面是否展示出来,系统将强制等待10秒,10秒之后继续执行下一步。如果这10s中下一页展示出来了将继续进行下面的步骤;如果下一页没有展示出来则系统将报错误(下一页要执行操作的元素没有找见)。
具体使用

在两个操作之间加上该强制等待的语句,等待时间根据情况自行决定。

第二种(隐式等待):

使用方法:self.dr.implicitly_wait(5)

解释:全局等待的方式,如果找不到控件,会在5秒以内一直重复寻找,找到后不管是否到5秒,继续下一步。如果5秒后还是未找到则系统将报错误(下一页要执行操作的元素没有找见)。

具体使用

在两个操作之间加上该强制等待的语句,等待时间根据情况自行决定。

易出错点:如果当前同一个页面存在一个和下一个页面要执行的元素特性相同的元素,则很有可能在当前页面执行下去,会导致后续出错。

本人比较建议第一种的使用,简单粗暴。

时间: 2024-10-07 06:55:11

appium中的等待方式使用的相关文章

selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python

我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait().隐式等待implicitly_wait().强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别 在前面的博文中简单介绍了<强制等待和隐士等待的区别和理解>,本文再详细的结合案例进行理解. sleep(): 强

Selenium中的几种等待方式,需特别注意implicitlyWait的用法(转)

最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题, 用以下方法执行的时候每次都会等待很长一段时间,原因是因为对selenium实现方法了解不足导致一直找不到解决方法. private boolean isElementPresent(By by) {     try { driver.findElement(by);       return true;     } catch (NoSuchElementException e) {       return

转:Selenium中的几种等待方式,需特别注意implicitlyWait的用法

最近在项目过程中使用selenium 判断元素是否存在的时候 遇到一个很坑爹的问题, 用以下方法执行的时候每次都会等待很长一段时间,原因是因为对selenium实现方法了解不足导致一直找不到解决方法. private boolean isElementPresent(By by) {     try { driver.findElement(by);       return true;     } catch (NoSuchElementException e) {       return

当Appium中遇到alert(python篇)

当Appium中遇到alert,可以使用switch_to_alert(),以下是微信登录切换登录方式的代码示例: 1 #coding=utf-8 2 from appium import webdriver 3 from time import sleep 4 import unittest 5 6 class WxTestsCase(unittest.TestCase): 7 def setUp(self): 8 desired_cups={} 9 desired_cups['platfor

关于centos7中使用rpm方式安装mysql5.7版本后无法使用root登录的问题

最近在centos7中通过rpm方式安装了最新版本的mysql-server 5.7 (mysql57-community-release-el7-7.noarch.rpm) ,发现安装成功后无法使用root登录.百度google一番无果,最后在官方文档中找到了答案.现记录完整安装及问题解决过程,希望能帮助到其他朋友. OS版本: Linux version 3.10.0-327.el7.x86_64 ([email protected]) (gcc version 4.8.3 20140911

子进程的异步等待方式

我们知道当一个父进程创建一个子进程时,会调用wait()和waitpid()函数清理僵?进程,?进程可以阻塞等待?进程结束,也可以?阻塞地查询是否有?进程结束等待清理(也就是轮询的?式).采?第?种?式,?进程阻塞了就不 能处理??的?作了;采?第?种?式,?进程在处理??的?作的同时还要记得时不时地轮询? 下,程序实现复杂. 1.wait()和waitpid() (1)wait 函数:用来等待任何一个子进程退出,由父进程调用. 1 #include<sys/types.h> 2 #inclu

Python selenium —— 一定要会用selenium的等待,三种等待方式解读

发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很多人在群里问,这个下拉框定位不到.那个弹出框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待.殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出门?凹凸曼分分中内心一万只羊驼飞过,欺负哥速度慢,哥不跟你玩了,抛个异常撂挑子了. 那么怎么才能照顾到凹凸曼缓慢的加载速度呢?只有一个办法

Python selenium 三种等待方式详解(必会)

很多人在群里问,这个下拉框定位不到.那个弹出框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待.殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出门?凹凸曼分分中内心一万只羊驼飞过,欺负哥速度慢,哥不跟你玩了,抛个异常撂挑子了. 那么怎么才能照顾到凹凸曼缓慢的加载速度呢?只有一个办法,那就是等喽.说到等,又有三种等法,且听博主一一道来: 1. 强制等待

Python selenium 三种等待方式详解

1. 强制等待第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间.看代码: # -*- coding: utf-8 -*- from selenium import webdriver from time import sleep driver = webdriver.Firefox() driver.get('https://www.xuehu365.com') sleep(3) # 强制等待3秒再