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手机操作的更多相关文章

  1. Appium(九):Appium API(三) 滑动和拖拽、高级手势、手机操作

    1. 滑动和拖拽 我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了. 1.1 swipe滑动事件 从一个坐标位置滑 ...

  2. Appium常用操作之「元素定位、swipe 滑屏操作」

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.打开 uiautomatorviewer 二.Appium 常用操作 1.用 layui 做 ...

  3. TIB自动化测试快讯 - Appium手机自动化测试学习资料精选

    TIB自动化测试快讯 - Appium手机自动化测试学习资料精选   Appium+Android+Javahttp://automationqa.com/forum.php?mod=viewthre ...

  4. 手机自动化测试:搭建appium手机自动化测试开发环境

    手机自动化测试:搭建appium手机自动化测试开发环境   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...

  5. appium滑动操作(向上、向下、向左、向右)

    appium滑动操作(向上滑动.向下滑动.向左滑动.向右滑动) 测试app:今日头条apk 测试设备:夜游神模拟器 代码如下: 先用x.y获取当前的width和height def getSize() ...

  6. H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试

    一.概述 1.1 什么是H5 H5 即 HTML5,是最新的 Web 端开发语言版本,现如今,大多数手机 APP 页面会用 H5 实现,包括 PC Web 站点也会用它开发实现.所以 Web 的通用测 ...

  7. LR11.50 通过Mobile Application 录制手机操作

    LR11.50 通过Mobile Application 录制手机操作 步骤就是 1:新建LR脚本.协议选择Mobile Application - HTTP/HTML 2:在record里选择第三个 ...

  8. Selenium +Chrome浏览器如何模拟手机操作

    Selenium +Chrome浏览器如何模拟手机操作 进入手机模式 打开谷歌浏览器,按F12,进入开发者模式,点击Toggle device toolbar,进入手机模式 设置Chrome的手机模式 ...

  9. 『与善仁』Appium基础 — 26、常用手机操作的API说明

    目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...

随机推荐

  1. 20155337祁家伟 2016-2017-2 《Java程序设计》第2周学习总结

    20155337 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 这周我学习了从JDK到IDE的学习内容,简单来说分为以下几个部分 使用命令行和IDE两种方式 ...

  2. OO原则汇总

    SOLID原则:http://www.cnblogs.com/lanxuezaipiao/archive/2013/06/09/3128665.html https://www.cnblogs.com ...

  3. [agc010D]Decrementing-[。。。思考题]

    Description 传送门 Solution 真是够神秘的啊... Alice和Bob两个真的城会玩. 不过本题一个暗示挺明显的.就是黑板上所有数不论何时gcd为1. 考场上我以为会很复杂,结果. ...

  4. Yii 2.0 Gridview源码分析

    GridView yii\grid\GridView 作用:GridView是Yii中的一个Widget,用来展示数据表格.有排序,分页和过滤功能. GridView默认界面如下.这是用Gii生成的. ...

  5. 【vijos1049】送给圣诞夜的礼品

    题面 描述 当小精灵们把贺卡都书写好了之后.礼品准备部的小精灵们已经把所有的礼品都制作好了.可是由于精神消耗的缘故,他们所做的礼品的质量越来越小,也就是说越来越不让圣诞老人很满意.可是这又是没有办法的 ...

  6. 我们一起学习WCF 第四篇单通讯和双向通讯

    前言:由于个人原因很久没有更新这个系列了,我会继续的更新这系列的文章.这一章是单向和双向通讯.所谓的单向就是只有发送却没有回复,双向是既有发送还有回复.就是有来无往代表单向,礼尚往来表示双向.下面我用 ...

  7. 文件批量加密重命名--python脚本AND mysql命令行导入数据库

    在考试中学生交上来的报告,需要进行一下文件名加密,这样阅卷老师就不知道是谁的报告了 在百度帮助下,完成了加密和解密脚本, 加密 #!/usr/bin/python # -*- coding: utf- ...

  8. JY播放器【喜马拉雅FM电脑端,附带下载功能】

    今天给大家带来一款神器----JY播放器.可以不用打开网页就在电脑端听喜马拉雅FM的节目,而且可以直接下载,对于我这种强迫症患者来说真的是神器.我是真的不喜欢电脑任务栏上面密密麻麻的. 目前已经支持平 ...

  9. Python20-Day01

    简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释 编译型语言是一种以编译器来实现的编程语言,优缺点:执行速度快,调试麻烦 编译型语言:Java,Go,C,C++ 解释性 ...

  10. xpath抓取的值有\r\n\t时,去掉的方法

    解决办法: normalize-space() 例子: 原来的xpath为: user=selector.xpath('//*[@id="Con"]/tr[1]/th/text() ...