开发动机现在APP里面十个有八个肯定会有下拉刷新组件,但是有的时候这些第三方Jar并不能满足我们需求定制。我所在项目就遇到了这种情况,需要在刷新成功后加一个停留动画,并且需要区分成功和失败,因为我们项目组是分模块开发,同事采用了Hardcode方式满足了自身需求,但是其他模块都通用不了。所以,我决定自己写一个下拉刷新来替代原有的变成一个通用BaseView。 下面,开始我们表演~
1. 前言熟悉Airtest同学都知道,像touch、swipe这类核心API,运行之后,都会在Airtest报告里记录一个步骤:但有很多情况下,我们可能会使用自定义函数,这种自定义函数,就不会被记录到我们Airtest报告里面。那如果我们想要自定义函数,也能显示在Airtest报告里面,该怎么处理呢?接下来我们就一起来了解下Airtest装饰器 @logwrap 。2. @logwr
1. sleep()和wait()区分  (1)这两个方法来自不同类分别是,sleep来自Thread类,wait来自Object类。  sleep是Thread静态类方法,谁调用谁去睡觉,即使在a线程里调用了bsleep方法,实际上还是a去睡觉,要让b线程睡觉要在b代码中调用sleep最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同
转载 2024-07-02 23:04:37
133阅读
上期回顾:Poco API精讲之元素属性操作attr、setattr……以下基于python3.8;airtestIDE1.2.13;airtest1.2.4;pocoui1.0.85注意:Poco框架和Airtest框架很多API是同名,但使用方法完全不一样!!!一定不要搞混了,我初学时也经常搞混,这点一定要注意!具体Poco框架和Airtest框架是什么关系,可以看之前文章:Airtest
转载 2024-03-22 19:28:02
344阅读
前言swipe 作用是在屏幕上从一个点滑动到另外一个点位置swipe 使用介绍swipe 方法作用:从v1 经历 steps 步滑动到 v2,且期间总持续 duration 秒,相当于每步是 duration/steps 秒。 如果没有 v2 值则滑动方向依赖于 vector 滑动比例值为终点swipe(v1, v2=None, vector=None, duration=0.01):v1
前言Airtest 写app自动化时候,页面上有些元素并不是固定显示,有的会等待一定时间才会出现。于是可以用wait方法等待元素出现,再进一步操作wait 等待元素wait方法作用,一直间隔interval秒去查找指定v对象,直到时间超过timeout后未找到就报TargetNotFoundError错误,期间如果每次间隔查找遇到错误就调用inervalfunc方法wait(v,ti
转载 2024-03-01 11:36:59
81阅读
前言Airtest 写app自动化时候,页面上有些元素并不是固定显示,有的会等待一定时间才会出现。于是可以用wait方法等待元素出现,再进一步操作wait 等待元素wait方法作用,一直间隔interval秒去查找指定v对象,直到时间超过timeout后未找到就报TargetNotFoundError错误,期间如果每次间隔查找遇到错误就调用inervalfunc方法wait(v,ti
环境搭建 (1)github下载WebDriveragent, ,百度搜这个然后找到github地址然后去下载下载地址为:https://github.com/appium/WebDriverAgent(2)安装AirtestIDE 下载地址。我下载AirtestIDE_2019-09-10_py3_Mac10-12.dmg。下载完成之后,直接安装即可。 设备连接-部署iOS-Tagent iO
转载 11月前
92阅读
前提是各种usb模式都搞完了,连接时黑屏或者一闪而断开连接,或者运行代码提示 mincap time out之类东西解决方法,在airtestide连接按钮时,把其中javacap勾上纯代码的话在连接时加上连接参数cap_method=javacap&touch_method=adb一个完整python项目例程,里面用到了大部分poco操作以及连接初始,看一遍自然
转载 2024-03-27 10:52:00
101阅读
AirTest简介网易出品,基于图像识别,跨平台,自动化测试框架,适用于游戏和应用程序特点跨平台(web,windows,安卓,IOS),易操作,可跨站性,强大GUI工具环境搭建python pip install -U airtestGui工具:AirTestIDE -> https://airtest.netease.com/changelog.html 1.设置里面,开发者模式 2.
 以下基于python3.8;airtestIDE1.2.11;airtest1.2.2;pocoui1.0.83老规矩开场白,我们今天要讲的是Airtest框架pinch(),不是Poco框架,一般我们说Airtest,其实应该指的是Airtest Project,具体这些概念关系是什么,可以看之前文章:Airtest Project——UI自动化利器介绍wait()和exist
上期回顾:在Airtest自动化中如何清除iOS后台应用 环境相关问题pip install -U airtest 无限超时使用 pip 命令安装Airtest,如果出现无限超时问题,是因为默认源是国外服务器  可以更换成国内源:pip install airtest -i https://pypi.tuna.tsinghua.edu.cn/simpleADB版本冲突在Win
转载 2024-05-08 09:32:56
195阅读
首先,我们来捋一捋这个函数功能,如下:我们应当知道是,在用fork创建子进程后,父子进程执行先后顺序是不定,这时,我们可以用wait函数,wait()会暂停当前进程执行,直到有信号到来或者子进程结束。总的来说,wait()作用就是阻塞父进程,等待子进程。看完了上面的内容,想必你也清楚了为什么我们要使用wait函数,并且是在哪使用我们是在父进程中使用wait(),可以不让父进程先于其产
我们调用wait或waitpid来处理已终止子程序。 #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int options); 函数wait和waitpid均返回2个值,已终止子进程PID,以及
App爬虫之强大Airtest操作总结App爬虫之强大Airtest操作总结# Python使用该框架需要安装依赖库 pip install airtest pip install poco pip install pocouifrom airtest.core.api import * from airtest.cli.parser import cli_setup from poco
转载 2024-07-20 09:33:48
218阅读
前言前俩天看到Airtest讨论群里面提出了1个有意思问题:一位同学在 测试自动装包 过程中,发现像oppo、vivo这类品牌手机在装包过程中都需要输入账号密码,而这会直接让 install() 指令运行失败 。 值得思考是,我们如何保证在安装应用过程中,同时完成输入账号密码任务而不中断安装应用任务呢?利用多线程解决装包过程中输入密码问题看到这里,相信很多同学已经想到了可以利用多线
1.ImportError: DLL load failed: 找不到指定模块 2. 各种常用pip命令 3.查询Airtest版本号方法 4.自定义截图压缩精度...  1.ImportError: DLL load failed: 找不到指定模块常见DLL报错会出现在以下2种情况中:① 在cv2 ImportError: D
前言Airtest 写app自动化时候,页面上有些元素并不是固定显示,有的会等待一定时间才会出现。于是可以用wait方法等待元素出现,再进一步操作wait 等待元素wait方法作用,一直间隔interval秒去查找指定v对象,直到时间超过timeout后未找到就报TargetNotFoundError错误,期间如果每次间隔查找遇到错误就调用inervalfunc方法wait(v,ti
转载 2024-03-29 06:36:40
67阅读
各位小伙伴们大家好,在之前文章中,小编简单介绍了等待唤醒一些简单案例,这次小编要简单提一下Object类中wait带参方法和notify。一个是wait(long timeout),在其他线程调用此对象notify()方法或者notifyAll方法,或者超过指定时间量前,导致当前线程等待。一个是notifyAll()唤醒在此对象监视器上等待所有线程。进入到TimedWaiting有两种
转载 2023-10-11 06:30:18
192阅读
# Java中wait方法与时间控制 在Java中,多线程编程是一项重要技能,而“wait”方法是实现线程间协调一个关键工具。本文将深入探讨Java中“wait”方法工作原理及其如何在指定时间内进行等待,并附加相应代码示例、状态图和类图来帮助理解。 ## 一、wait方法基本概念 在Java中,`wait()`和`notify()`方法是在`Object`类中定义。这两个方法帮
原创 10月前
68阅读
  • 1
  • 2
  • 3
  • 4
  • 5