appium手机操作
1、按键操作
pressKeyCode(key, metastate)
key为按键事件,metastate为辅助功能键
举例:
pressKeyCode(AndroidKeyCode.HOME) 按HOME键
pressKeyCode(AndroidKeyCode.KEYCODE_A, 1) 按A键
2、锁屏操作
lockScreen(seconds):屏幕几秒后锁屏
isLocked():判断屏幕是否锁屏,返回布尔类型,锁屏为true
3、打开通知栏
openNotifications()
4、屏幕滚动
scrollTo(text):滚动到某个Text属性为指定的字符串的控件
scrollToExact(text):滚动到某个Text属性包含传入的字符串的控件
5、获取网络状态
getNetworkConnection().value :返回一个整型
0:none 1:Airplane Mode 2:Wifi only 4:Data only 6:All network on
6、设置网络状态
setNetworkConnection(connection)
举例:
setNetworkConnection(new NetworkConnectionSetting(1));//飞行模式
setNetworkConnection(new NetworkConnectionSetting(true, false, false))//飞行模式
7、截取屏幕
getScreenshotAs(outputType)
举例:
File screen = driver.getScreenshotAs(OutputType.FILE);
File screenFile = new File("d:\\screen.png");
try {
FileUtils.copyFile(screen, screenFile); //commons-io-2.0.1.jar中的api
} catch (IOException e) {
e.printStackTrace();
}
8、横竖屏设置
rotate(orientation):设置屏幕横屏或者竖屏 LANDSCAPE (横向) 或 PORTRAIT (纵向)
getOrientation():获取当前屏幕的方向
举例:
driver.rotate(ScreenOrientation.LANDSCAPE); 设置屏幕为横屏
9、上传/下载文件
pullFile(remotePath):上传文件
driver.pullFile(remotePath):下载文件
pullFolder(remotePath):下载文件夹
上传文件举例:
File file = new File("c:\\appium.log");
String content = null;
try {
content = FileUtils.readFileToString(file);
} catch (IOException e) {
e.printStackTrace();
}
byte[] data = Base64.encodeBase64(content.getBytes());
driver.pushFile("sdcard/appium.log", data);
下载文件举例:
byte[] resultDate = driver.pullFile("sdcard/appium.log");
System.out.println(new String(Base64.decodeBase64(resultDate)));
下载文件夹举例:
driver.pullFolder("tmp/"); 把android的tmp目录拷贝到临时文件夹
10、屏幕元素点击
tap(fingers, element, duration):点击element控件中心点按下,duration*5毫秒秒后松开,如此重复fingers次
11、屏幕坐标点击
tap(fingers, x, y, duration):点击x,y坐标按下,duration*5毫秒秒后松开,如此重复fingers次
元素的x,y坐标如何获取,利用uiautomatorviewer获取元素的bounds值,然后在范围内取值,如下示例:
一个button的bounds坐标是[152,344][300,514]
x的取值范围是152--300,y的取值范围是344--514
12、根据坐标滑动
swipe(startx, starty, endx, endy, duration):从(startx,starty)滑到(endx,endy),分duration步滑,每一步用时是5毫秒。
坐标获取方式:
a)手机--开发者选项--指针位置 b)hierarchyviewer c)uiautomatorviewer
举例:
File screen = driver.getScreenshotAs(OutputType.FILE);
try {
BufferedImage bufferedImage = ImageIO.read(screen);
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
System.out.println("width:"+width+"height:"+height);
driver.swipe(width/2,height*3/4, width/2,height/4, 1000);
} catch (IOException e) {
e.printStackTrace();
}
备注:获取手机屏幕的大小,然后再实现滑动。
appium手机操作的更多相关文章
- Appium(九):Appium API(三) 滑动和拖拽、高级手势、手机操作
1. 滑动和拖拽 我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了. 1.1 swipe滑动事件 从一个坐标位置滑 ...
- Appium常用操作之「元素定位、swipe 滑屏操作」
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.打开 uiautomatorviewer 二.Appium 常用操作 1.用 layui 做 ...
- TIB自动化测试快讯 - Appium手机自动化测试学习资料精选
TIB自动化测试快讯 - Appium手机自动化测试学习资料精选 Appium+Android+Javahttp://automationqa.com/forum.php?mod=viewthre ...
- 手机自动化测试:搭建appium手机自动化测试开发环境
手机自动化测试:搭建appium手机自动化测试开发环境 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...
- appium滑动操作(向上、向下、向左、向右)
appium滑动操作(向上滑动.向下滑动.向左滑动.向右滑动) 测试app:今日头条apk 测试设备:夜游神模拟器 代码如下: 先用x.y获取当前的width和height def getSize() ...
- H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试
一.概述 1.1 什么是H5 H5 即 HTML5,是最新的 Web 端开发语言版本,现如今,大多数手机 APP 页面会用 H5 实现,包括 PC Web 站点也会用它开发实现.所以 Web 的通用测 ...
- LR11.50 通过Mobile Application 录制手机操作
LR11.50 通过Mobile Application 录制手机操作 步骤就是 1:新建LR脚本.协议选择Mobile Application - HTTP/HTML 2:在record里选择第三个 ...
- Selenium +Chrome浏览器如何模拟手机操作
Selenium +Chrome浏览器如何模拟手机操作 进入手机模式 打开谷歌浏览器,按F12,进入开发者模式,点击Toggle device toolbar,进入手机模式 设置Chrome的手机模式 ...
- 『与善仁』Appium基础 — 26、常用手机操作的API说明
目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...
随机推荐
- ESP8266 station模式下建立client、server TCP连接
程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...
- Mac系统STF自动化环境搭建及部署踩坑记录
因为公司需要寻找一个免root的自动化测试方案,所以以前做的老方案需要被替代.一阵搜寻找到了这个框架,但是部署起来很是折腾,搞了一下午终于搞定,顺便记录一下过程,有需要的自取. 转载请注明出处:htt ...
- loadrunner-录制脚本,设置代理,参数化,校验点,关联
详细记录一个脚本制作过程相关知识点 制作脚本 因为要做网页所以选择web协议,根据实际需要选择 选择浏览器地址,打开的网页网址,脚本存储地址以及初始化脚本,初始化脚本的目的是执行用例后不再执行此脚本中 ...
- 令自己的本地ip可以被外网访问
https://www.ngrok.cc/_book/general/open.html
- TPO 02 - Desert Formation
TPO 02 - Desert Formation NOTE: 主要意思(大概就是主谓宾)用粗体标出:重要的其它用斜体: []中的是大致意思,可能与原文有关也可能无关,但不会离题 目的为训练句子/段落 ...
- MySql面试题(持续更新)
1. 左连接,右连接,内连接的概念. 左连接:以左表为主,保留左表的所有数据,并且依次拿每行数据去匹配右表所有行,如果没匹配的,右边表的数据为null. 右连接:以右表为主,保留右表的所有数据,并且依 ...
- POJ 3579 Median 二分加判断
Median Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12453 Accepted: 4357 Descripti ...
- NO.1:自学tensorflow之路------神经网络背景知识
引言 从本周,我将开始tensorflow的学习.手头只有一本<tensorflow:实战Google深度学习框架>,这本书对于tensorflow的入门有一定帮助.tensorflow中 ...
- Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★
Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...
- [转]oracle数据库定时任务dbms_job的用法详解
这篇文章给大家详细介绍了dbms_job的用法,用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务.有需要的朋友们可以参考借鉴. 一.dbms_job涉及到的知识点 ...