uiautomator学习(3)

1、记录swipe滑动使用

向下滑动:

 public void SwipeDown(int X){
int height = uidevice.getDisplayHeight();
int width = uidevice.getDisplayWidth();
int step = 50;
uidevice.swipe(width/2,height/2,width/2,height/2-X,step);
}

 uidevice.swipe中有五个参数,分别对应了起点x轴坐标、起点Y轴坐标、终点X轴坐标、终点Y轴坐标,分多少步完成;

2、记录在手机创建文件夹

String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "loveU";//直接在手机文件根目录下创建loveU的文件
File appDir = new File(storePath);
if (!appDir.exists()) {
Boolean a = appDir.mkdirs();//判断目录创建是否成功
Log.i(TAG, "createDir: " + a);
}
一般情况下都是创建失败,原因如下:

     使用uiautomator1.0的时候我们没有遇到这样的问题(使用Eclipse开发环境)。uiautomator1.0的脚本最后是打包成为了一个可执行的jar文件,我理解这个jar文件凌驾于apk之上,所以可以操作其他apk的任何界面。不过到6.0之后的版本是不是会有权限问题,这个还没有经过验证 。当切换成了Android Studio编译环境,相应的runner也进化配置成为了“AndroidJUnitRunner”,这是我们发现打包后的uiautomator不再是原来的jar而是变成了一个testapk。刚刚提到打包文件夹里面有两个apk,一个是我们的testapk,一个是源程序apk,如果我们不是把测试脚本放在源代码中那么就是个是空的apk,这个空的apk就是测试apk依托的一个假的工程文件。我们把权限写在AndroidManifest.xml 里面就是通过这个依托的apk来简介获得到权限。

参考:https://blog.csdn.net/hyukfxj35/article/details/78594599

   所以需要在AndroidManifest.xml中加上权限,如下图所示:

  3.获取当前的时间戳

SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmsss");//设置日期格式
String date = df.format(new Date());// new Date()为获取当前系统时间,也可使用当前时间戳

4.保存截图

File file = new File(storePath, date + ".png");//使用时间戳作为文件名,保存截图到固定路径
uidevice.takeScreenshot(file, 1.0f, 10);//截图
原文地址:https://www.cnblogs.com/lian-lian/p/10122681.html