python+Appium自动化:元素等待时间

元素等待时间

为什么要设置等待时间呢?主要是因为界面加载时,为了防止元素还未出现影响后续的操作。

主要有三种方式:强制(线性)等待、隐式等待、显式等待

适用于appium和selenium

强制(线性)等待

import time

#休眠5秒钟

time.sleep(5)

隐式等待

只能设置一个元素等待时间,针对全局元素有效

driver.implicitly——wait(10)

显式等待

主要针对某个元素来设置的等待时间

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
driver :浏览器驱动。
timeout :最长超时时间,默认以秒为单位。
poll_frequency :检测的间隔(步长)时间,默认为0.5S。
ignored_exceptions :超时后的异常信息,默认情况下抛NoSuchElementException异常。
#先导入模块,首页判断是否有搜索id,有就进行点击
from selenium.webdriver.support.ui import WebDriverWait
element = WebDriverWait(driver, 5).until(lambda x:x.find_element_by_id("com.taobao.taobao:id/home_searchedit"))
element.click()

原文地址:https://www.cnblogs.com/bugbreak/p/12043599.html

时间: 2024-08-30 15:58:29

python+Appium自动化:元素等待时间的相关文章

python+Appium自动化:id元素定位

元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name class List定位 相对定位 Xpath定位 H5页面元素定位 Uiautomator定位 首先可以进入SDK中的tools文件夹中打开uiautimatorviewer.bat,用于元素定位 测试场景,启动淘宝app,同意温馨提示,进入首页 id定位 Appium中可以使用find_element

python+Appium自动化:框架设计

之前学习了appium各种元素定位.手势操作,数据配置,pageobject设计模型等等 ,相对比较零散,没有完全的整合起来. 正所谓万丈高楼平地起,搭建一个完整的自动化框架变得很重要. 框架功能 测试包管理 业务功能封装 测试用例封装 截图处理 断言处理 日志管理 测试报告生成 数据配置 数据驱动 思维脑图来一波 pycharm创建 原文地址:https://www.cnblogs.com/bugbreak/p/12202405.html

python+Appium自动化:python多线程多并发启动appium服务

Python启动Appium 服务 使用Dos命令或者bat批处理来手动启动appium服务,启动效率低下.如何将启动Appium服务也实现自动化呢? 这里需要使用subprocess模块,该模块可以创建新的进程,并且连接到进程的输入.输出.错误等管道信息,并且可以获取进程的返回值.subprocess模块官方文档 场景 使用Python启动2台appium服务,端口配置如下: Appium服务器端口:4723,bp端口为4724 Appium服务器端口:4725,bp端口为4726 说明:bp

python appium自动化,走过的坑

使用的夜神模拟器,使用android5.1.1 第一坑:使用的android7.1.2,刚开始写好了登录的代码,需要的是滑屏进入到登录界面,结果运行的时候,没有自动滑屏就报错:因为运行时,报了一个进程被另一个程序在使用,怀疑是这个原因,又改了在进行滑屏前强行等待了几秒,还是不行:截其他界面的元素,也经常报一个UI的错,百度说这个是android的问题,后来我改了夜神模拟器的版本5.1.1,运行正常,滑屏正常! #后续会不断的进行更新,不断的入坑. 原文地址:https://www.cnblogs

python+Appium自动化:运行第一个appium脚本

用pycharm工具进行编写,运行一个开启淘宝app实例 from appium import webdriver desired_caps = { "platformName": "Android", "platformVersion": "5.1", "deviceName": "U4KF9HSK99999999", #真机设备名称 通过adb devices获取 "app

python+Appium自动化:输入中文问题

只要接触到app自动化,难免会遇到许多坑,今天说说解决中文输入的问题. 流程: 进入到淘宝应用,点击搜索栏,输入文字 一开始send_keys(“中文”)时,搜索栏一直没有出现文字,脚本也没有提示报错,后面通过寻找资料,才知道desired_caps中缺少配置 "unicodeKeyboard":True(用unicode编码方式发送字符串) "resetKeyboard":True (键盘隐藏) 脚本运行后得已解决 原文地址:https://www.cnblogs

python+Appium自动化:MultiAction多点触控

MultiAction MultiAction 是多点触控的类,常用于模拟用户多点操作. 主要包含这add()还有perform()两个方法,模拟多点触控,需要导入TouchAction还有MultiAction两个模块. from appium.webdriver.common.multi_action import MultiAction from appium.webdriver.common.touch_action import TouchAction 加载: 方法add(self,

python+Appium自动化:yaml配置capability

场景 学习了yaml之后就是要将capability的各项参数值与代码分离开. 先创建一个capability.yaml文件,把各项参数存放在其中,然后用load()进行读取. 例子: capability.yaml platformName: Android deviceName: U4KF9HSK99999999 platformVersion: 5.1 appPackage: com.taobao.taobao appActivity: com.taobao.tao.welcome.Wel

python+Appium自动化:日志logging模块

日志级别 debug.info.warn.error.critical五个级别 logging模块构成(四部分) logger(记录器,用于日志采集) Handler(处理器,将日志记录发送到合适的路径) Filter(过滤器,提供了更好的粒度控制,决定输出哪些日志记录) Formatter(格式化起,指明了日志的格式) logger(记录器) 在使用debug.info.warn.error.critical五个级别之前创建logging实例 方法:basicConfig()为日志记录系统做基