Android自动化-双击操作
在讲这个主题的之前,其实我想说的是在android设备里面进行双击的操作实际上是一个很奇怪的情况,目前大部分的软件基本也不会出现有说某个按钮需要通过双击来进行操作的。不过既然遇到了,就得想想怎么解决这个操作吧。
问题
主要还是使用的是appium。使用的过程中发现,实际上 appium并没有提供双击的接口给到我们,其实这个并不能说是appium未封装该方法,而是实际上我们看android 按钮也只是提供了setOnClickListener,而并没有setOnDoubleClick方法。这也是前面说到双击操作基本不用到的原因。
解决方法
抛开系统的问题 我们来看看目前都有什么方法可以支持双击的操作。
- Android-Uiautomator:[1]如何实现双击效果 如果只是UiAutomator的话,可以通过配置Configurator 的操作延时来进行,不过我记得Configurator也是要在后面的版本(4.3)才能够支持的。
- appium 由于click方法中间默认存在有间隔时间,所以可以采用tap(轻触)。
- 通过monkey来解决的。
UiAutomator双击操作
//设置点击操作的间隔
Configurator.getInstance().setActionAcknowledgmentTimeout(0);
UiObject sendButton = new UiObject(new UiSelector().resourceId("com.cvte.popupwindowdemo:id/button1"));
sendButton.click();
sendButton.click();
这种方法经验证确实可行。不过建议设置完间隔时间以后,还是将默认的间隔时间设置回去。
long timeout =Configurator.getInstance().getActionAcknowledgmentTimeout();
可通过以上方法在设置0之前先将默认的时间获取到。
Appium的 tap api 。
这种方法就不说了,API 如下:
public void tap(int fingers, WebElement element, int duration)
问题在与在手机上验证确实能够实现双击的效果,但是源于该API要求为18以上即Android 4.3以上才行。
monkey 双击
下来我们重点来说下如何通过monkey来实现双击的操作。
实际上我们大多数人认为monkey主要的功能是进行稳定性的测试,实际上并不了解它可以用来写脚本的。
MonkeySourceScript
我们看这个就能够知道了。monkey的脚本就是通过它来进行解析的,并且它也提供了运行的demo了。所以我们很清楚的知道点击操作的代码可以写成
DispatchPointer(5109520,5109520,0,498,585,0,0,0,0,0,0,0)
DispatchPointer(5109520,5109520,1,498,585,0,0,0,0,0,0,0)
第3、4、5分别代表了touchdown以及touchup 以及坐标值,其他具体每个参数的作用我就不讲解了。具体可以google就行。
所以我们就可以依葫芦画瓢
count= 1
speed= 1.0
start data >>
DispatchPointer(5109520,5109520,0,498,585,0,0,0,0,0,0,0)
DispatchPointer(5109520,5109520,1,498,585,0,0,0,0,0,0,0)
UserWait(200)
DispatchPointer(5109520,5109520,0,498,585,0,0,0,0,0,0,0)
DispatchPointer(5109520,5109520,1,498,585,0,0,0,0,0,0,0)
因为monkey的操作基本是没有延迟的,所以我们需要自己手动的给它加上一个延迟。另外以上只是一个例子,在实际操作中我们首先需要通过获取到我们想要点击的元素的坐标,再写入实际的坐标值。
我们将代码写入 monkey.txt中将其推到手机 /data/local/tmp 目录下,其实其他路径也是可以的。
通过adb 运行 monkey -f monkey.txt 1 即可 。
总结
以上的方法。如果考虑兼容性的问题,确实是monkey的点击是不二的选择。但是如果说在系统有条件的情况下。当然还是使用appium原生的api是最好的了。
Android自动化-双击操作相关推荐
- Selenium自动化之鼠标双击操作
#鼠标双击操作 from selenium.webdriver import ActionChains action_chains = ActionChains(self.driver) action ...
- Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放
MonkeyRunner 系列文章 MonkeyRunner简介 MonkeyRunner 三大模块 MonkeyRunner API MonkeyDevice API MonkeyImage API ...
- 使用Monkeyrunner进行Android自动化的总结
使用Android自动化的方式,不仅可以用来对Android APP进行自动化测试,同样可以用来进行一些其他非常有意思的自动化任务.常用的自动化工具有Monkeyrunner, Robotium, A ...
- zz:使用Monkeyrunner进行Android自动化的总结
使用Monkeyrunner进行Android自动化的总结 使用Android自动化的方式,不仅可以用来对Android APP进行自动化测试,同样可以用来进行一些其他非常有意思的自动化任务.常用的自 ...
- Android自动化的一般方法
1 背景 https://mp.weixin.qq.com/s/B7o3JSkYI_9c4RivatsZKQ Android自动化包含自动化测试和第三方App的自动化运行,这里的自动化测试主要指的是纯 ...
- Android自动化框架对比
简介 移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的"变", 变化导致自动化用例的大量维护.从分层测试的角度,自动化测试应该逐层进行.最大量实现自动化测试的应该是 ...
- Android自动化大讲堂34--终极自动化框架UIAutomator使用详解
<深入理解Android自动化测试> 又双叒叕重印咯!!! 无以为报,只能改版得更漂亮一点来答谢各位的厚爱! 好了,废话少说,咱们开始吧! 终极自动化框架UIAutomator使用详解 注 ...
- APP自动化_操作微信小程序/H5页面实现自动化_多终端并行
APP自动化_混合App自动化理论相关 原理:本质是混合app,应该用切入webview的方法去自动化web页面. 现状:目前由于技术原因无法切到webview中做自动化. 方案:采用原生app自动方 ...
- 【金阳光测试】基于控件核心技术探讨---Android自动化系列(2)---2013年5月
第一讲分享了下安卓自动化一些概况和一些自动化框架现状和技术能够解决什么样的问题.这次课就深入到android世界里面.遨游.翱翔,深入了解自动化测试核心技术. 搞过编程开发的同学听到instrumen ...
- Android自动化测试之Monkey命令使用及monkey脚本编写
系列文章 Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解 Android自动化测试之Monkey使用及monkey脚本 ...
最新文章
- 网站建设中的五大常见问题
- HTTPS_SSL配置的步骤以及原理说明
- SAP 作业类型主数据
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...
- AWS Messaging Services:选择合适的服务
- Spring boot Mybatis 整合(注解版)
- 【今日CS 视觉论文速览】8 Jan 2019
- android 获取动态时间间隔,android 获取时间间隔
- python mysql lastrowid_加快MySQL对lastrowid的多个单次插入
- sql server计算日期到当前日期天数_Excel必学的7个计算日期间隔差的技巧
- html+div+css+jquery+javascript的关系
- 瞬时日差检定测量仪的使用
- 修改网页中的内容与打印网页
- 跨数据库分布式实时事务 - 基于RabbitMQ实时消息队列服务实现
- CIP4和JDF,您知道多少?(转)
- gitlab推送钉钉机器人配置
- 岛屿的最大面积(Java)
- 出轨后身体留下的六个特征
- Docker学习之四:容器虚拟化网络与docker网络
- 泛泰binx和ota升级包下载工具Android版[2013.6.7提供源代码]