appium输入和清除操作各方法对比(android)
最近在写android app自动化测试时,发现输入和清除操作耗费时间比较长,下面我用了不同的方法进行输入和清除操作,对比下时间(选取测试的一组数据做分析),选出最佳方法。
1、输入操作
1.1、webElement.sendKeys()
可以看到 该方法的输入时间在5s 左右
1.2、actions.sendKeys().perform()
该方法是使用Actions类的sendKeys方法,sendKeys前需要先webElement.click()
从结果可以看到该方法的输入时间在3s左右
1.3、adb shell input text
该方法是直接使用adb命令进行输入,可以看出输入时间不到1s. 操作前需要先webElement.click()
1.4、总结
方法 | 第一次 | 第二次 | 第三次 | 第四次 | 解释 | 结果 |
---|---|---|---|---|---|---|
webElement.sendKeys() | 5112 | 5444 | 17045 | 5380 | 第三次默认进行了清除操作 | IOS、android 通用,用时最长 |
actions.sendKeys().perform() | 5747 | 3203 | 3298 | 3757 | 第一次较长是等待元素可以点击 | iOS、android通用,用时较长 |
adb shell input text | 3999 | 948 | 947 | 891 | 第一次较长是等待元素可以点击 | 只用于android,时间最短 |
2、清除操作
2.1、webElement.clear()
该方法在需要清除的元素没有内容时,耗费时间较长,在5s左右。清除元素有内容时时间在1s左右。如果是密码输入框,有几率出现清除不干净。
2.2、adb shell input keyevent 67
该方法直接使用adb命令删除,代码如下:
webElement.clickString conent = webElement.getText();while (StringUtils.isNotBlank(conent)) {ShellUtils.adbClear();---封装执行adb命令的方法conent = webElement.getText();}
从图可以看出,该删除方法耗时依赖于元素的长度,比如如果是手机号码,则删除要耗时十几秒。注意:如果是密码输入框,则不会进行清除。
2.3、pressKeyCode
该方法是 点击–全选–删除,代码
webElement.click((AndroidDriver<WebElement>) driver).pressKeyCode(29, 28672);((AndroidDriver<WebElement>) driver).pressKeyCode(112)
该方法删除时间稳定在1.3左右
2.4、总结
方法 | 第一次 | 第二次 | 第三次 | 第四次 | 解释 | 结果 |
---|---|---|---|---|---|---|
webElement.clear() | 146 | 5238 | 1198 | 4037 | 第一次判断了text为空,所以没有进行清除操作,第二次和第四次是密码输入框获取到text为空的原因。 | IOS、android 通用,密码输入框用时较长 |
adb shell input keyevent 67 | 3239 | 723 | 11353 | 780 | 第一次较长是等待元素可以点击,第三次是要清楚的文案太长 | 只用于android,依赖文本长度,且密码输入框不能清除 |
pressKeyCode | 3282 | 845 | 1288 | 1388 | 第一次较长是等待元素可以点击 | 只用于android,时间最短 |
3、结果
输入最终代码如下
case "sendKeys":webElement.click();if (StringUtils.isNotEmpty(webElement.getText())|| Boolean.valueOf(webElement.getAttribute("password"))) {//如果元素内容不为空或者是密码输入框,则先进行删除操作。pressKeyCode删除 ((AndroidDriver<WebElement>) driver).pressKeyCode(29, 28672); ((AndroidDriver<WebElement>) driver).pressKeyCode(112);}ShellUtils.adbSendKeys(elementLocator.getActionValue());---adb 命令输入break;
转载于:https://www.cnblogs.com/leohou/p/10878075.html
appium输入和清除操作各方法对比(android)相关推荐
- C语言清空输入缓冲区的N种方法对比
C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 ...
- C语言清空输入缓冲区的N种方法对比(转)
C语言中有几个基本输入函数: //获取字符系列int fgetc(FILE *stream);int getc(FILE *stream);int getchar(void);//获取行系列char ...
- 用户操作计算机的方法,操作者向计算机输入信息最常用的方法是(B).doc
操作者向计算机输入信息最常用的方法是(B). A.用文字 B.用键盘 C.用语言 D.用扫描仪 软盘加上写保护后,对它可以进行的操作是(A). A.只能读盘,不能写盘 B.既可读盘,又可写盘 C.只能 ...
- JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法
JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法 获取input框用户输入信息数组存储 var datas = {Id: idData.id,OrderDetailCode: ...
- 帝国cms清除html标签,帝国CMS结合项筛选带已选择的条件和删除操作的方法
本文实例讲述了帝国CMS结合项筛选带已选择的条件和删除操作的方法.分享给大家供大家参考.具体实现方法如下: 这个功能是在帝国的官方插件帝国官方插件-结合项列表属性筛选显示下载基础上修改而来的,(官方插 ...
- addslashes 及 其他 清除空格的方法是不安全的
清除空格的方法是不安全的,部分原因是因为字符中的空格非常多,例如 "addslashes的问题在 于黑客 可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xb ...
- golang string转int8_Go教程:23 string转换int类型方法对比
Go教程:23 string转换int类型方法对比 Go语言时一个强类型的语言,但是强类型的语言有也强类型的语言的烦恼.这个烦恼就是类型转换, 接下来我们就讲解一下怎么把 string 类型变量转换成 ...
- android 指纹 分发,移动终端及基于指纹识别来实现操作的方法和系统与流程
本发明涉及移动终端技术领域,具体地说,移动终端及基于指纹识别来实现操作的方法和系统. 背景技术: 随着科学技术的不断发展和社会的进步,近年来指纹识别的流行,很多移动终端上均设置有指纹识别装置. 现有移 ...
- python写界面输入测试脚本_python+Selenium自动化测试——输入,点击操作
这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要 ...
最新文章
- java同步与死锁_Java多线程 - 线程同步与死锁
- CountDownLatch的实现分析
- flutter 调用原生安卓插件_Flutter 如何调用Android和iOS原生代码-阿里云开发者社区...
- B/S,C/S简单介绍
- 吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)...
- SQL实战篇:SQL解决连续X天的问题
- 在Linux上运行Windows软件的4种以上方法
- 把一张合成图分拆出各个小图
- c++ 0x8000ffff灾难性故障_电容器毁灭性故障,让PCB板直接报废!
- MongoDB查询时排序字段为int类型和string类型的区别
- 华为c8818刷原生Android 6,华为C8818(电信4G)一键救砖教程,轻松刷回官方系统
- access简述报表的功能_报表的主要功能_access标签报表有什么作用
- 【3dmax千千问】初学3dmax插件神器第22课:3dmax效果图渲染进阶教程|VRAY相机为何要与VRAY灯光、VRAY材质、VRAY贴图等进行匹配呢?食住玩3dmax千千问教程
- 插值型求积公式的实现
- 男生必学,与女生聊天技巧
- 2022当代科学技术前沿知识 课后测试
- 视觉SLAM开源方案汇总及设备选型建议
- 一句话木马、中国菜刀、图片一句话制作、过狗一句话
- day2(sdasdasdasdasd)
- 5款工具彻底帮你解决百度网盘限速问题!
热门文章
- boost::kruskal_minimum_spanning_tree用法的测试程序
- boost::graph模块实现在无向图上使用连通分量算法
- boost::function_types::has_property_tag用法的测试程序
- boost::fibers::buffered_channel< std::string >用法的测试程序
- Boost:标记的的bimap双图测试程序
- ITK:计算PCA形状模型
- DCMTK:OFCharacterEncoding的测试程序
- 打印页面横向怎么设置_条码打印软件标签纸页面设置的方法
- pbl和sbl_综合运用PBL和SBL教学法提高眼科带教质量的探索
- node软件环境安装