package test_one;

import java.lang.*;
import java.io.File;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.testrunner.UiAutomatorTestCase; import android.R.id;
import android.R.string;
import android.os.RemoteException; import com.android.uiautomator.core.UiWatcher;
import com.android.uiautomator.core.UiObjectNotFoundException; @SuppressWarnings("deprecation")
public class Test_ojb extends UiAutomatorTestCase{
public int startapp(String componentName){
StringBuffer app = new StringBuffer();
app.append("am start -n");
app.append(componentName);
int ret = 1;
try{
Process process = Runtime.getRuntime().exec(app.toString());
ret = process.waitFor(); }catch(Exception e){
e.printStackTrace();
System.out.println("startapp Exception!!! "); }
return ret;
} public void test_one_Test()throws UiObjectNotFoundException,RemoteException{
for(int j=0; j<10; j++){
if (UiDevice.getInstance().isScreenOn()) {
System.out.println("screen OK!"); }else{
UiDevice.getInstance().wakeUp();
System.out.println("The screen is lit ! ");
}
UiDevice.getInstance().pressHome();
UiObject Unlocked = new UiObject(new UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"));
assertTrue("Unlocked NG!",Unlocked.exists());
try {
Unlocked.swipeUp(20);
System.out.println("OK! The desktop unlocked successfully");
} catch (Exception e) {
e.printStackTrace();
System.out.println("NG! Unlock failed!");
}
UiObject launcher1 = new UiObject(new UiSelector().resourceId("com.android.launcher3:id/layout")
.className("android.view.View")
.packageName("com.android.launcher3"));
UiObject launcher2 = launcher1.getChild(new UiSelector().index(0));
UiObject application = launcher2.getChild(new UiSelector().index(2)
.className("android.widget.TextView")
.packageName("com.android.launcher3"));
assertTrue("application NG!",application.exists());
try{
application.clickAndWaitForNewWindow();//点击进入应用
System.out.println("application click ok!");
} catch (UiObjectNotFoundException e){
e.printStackTrace();
System.out.println("NG! Application click failed! ");
UiDevice.getInstance().pressHome();
sleep(2000);
application.clickAndWaitForNewWindow();
}
UiObject View_1 = new UiObject(new UiSelector().resourceId("com.android.launcher3:id/apps_customize_pane_content")
.className("android.view.View"));
UiObject view_2 = View_1.getChild(new UiSelector().className("android.view.View").index(0));
UiObject view_3 = view_2.getChild(new UiSelector().className("android.view.View").index(2));
for(int i=0;i<view_3.getChildCount();i++){ //遍历桌面
try{
UiObject obj = view_3.getChild(new UiSelector().className("android.widget.TextView").index(i));
assertTrue("NG!"+i+"could not find it", obj.exists());
obj.click();
System.out.println(i+"start OK!");
sleep(5000);
UiDevice.getInstance().pressBack();
if(view_3.waitForExists(10000)){
System.out.println("return!");
}else{
UiDevice.getInstance().pressBack();
}
sleep(1000);
}catch (UiObjectNotFoundException e) {
e.printStackTrace();
System.out.println("NO:"+i+"_NG!");
File Screenshot = new File("/mnt/sdcard/"+"log_"+i+".png");
UiDevice.getInstance().takeScreenshot(Screenshot);
UiDevice.getInstance().pressHome();
sleep(2000);
application.clickAndWaitForNewWindow();
}
}
UiDevice.getInstance().pressHome();
sleep(1000);
UiDevice.getInstance().sleep();
}
}
}

												

UiAutomator 代码记录 : 遍历桌面的更多相关文章

  1. uiautomator 代码记录 :BT接收测试

    package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...

  2. uiautomator 代码记录 : BT发送测试

    package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...

  3. uiautomator 代码记录 : 随机发送短信

    package sms_test; import java.lang.*; import java.util.Random; import javax.microedition.khronos.egl ...

  4. UiAutomator 代码记录: 随机创建新联系人

    package lecturer; import java.lang.*; import java.nio.Buffer; import java.util.Random; import java.i ...

  5. MVVM 代码记录

      一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...

  6. sqlserver 脚本 多条记录遍历

    临时表方式实现多条记录遍历 declare @oper_cart_item_id bigint; declare @oper_cart_id bigint; declare @the_last_cha ...

  7. 记录远程桌面登录者的IP和MAC

    WINDOWS 2003 远程桌面不能记录登陆IP真是件头痛的事,本方法可以记录登陆者IP,具体的操作步骤如下: 1.建立一个存放日志的目录,如C盘下建立一个RDP的目录“C:/RDP”. 2.然后在 ...

  8. Echarts基于动态数据初步使用 及问题 代码记录.

    ECHARTS 插件 基本的动态数据展示(横向图) 下载 echarts.commn.min.js文件 在页面中进行引用, 并为Echarts图形准备一个div盒子 <!-- 引入插件 --&g ...

  9. PAT甲级训练刷题代码记录

    刷题链接:https://www.patest.cn/contests/pat-a-practise 1001 #include <iostream> #include <stdio ...

随机推荐

  1. Weekend Log 4.6

    PHP相关 常用PHP编译 .\/configure 12 ./configure -prefix=/usr/local/php --with-config-file-path=/usr/local/ ...

  2. excel技巧--复制带excel侧边的表格

    假设要复制出带excel侧边的表格内容,则使用以下步骤: 1.选择要复制的表格: 2.选择“页面布局”->“标题”选项的“打印”打勾: 3.选择“开始”->复制旁的三角选项:复制为图片: ...

  3. 写了一个hiero中添加自定义Token的脚本

    Hiero自带Token往往不够用,shotname中自带版本号的情况下要升级版本会很麻烦,比如Shot_0001_v001这样一个序列名,要升级为Shot_0001_v002就必须把_v001之前的 ...

  4. VMware Workstation 安装 mac OS 时遇到 不可恢复错误: (vcpu-0)

    去客户机的安装目录,打开VMX文件, 比如你的客户机名字为OSX, 这个文件就是OSX.vmx,你将会看到有一个smc.present的参数:smc.present = "TRUE" ...

  5. 《亲测》nginx webscoket ssl conf配置示例

    非crt证书,用的pem,其中 http://localhost:5003 是你要转发到的站点网址 配置的就是 server { listen 80; server_name smarthome.yi ...

  6. ALGO-143_蓝桥杯_算法训练_字符串变换

    问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,,,,5这5个参数分别指代不同的5种字符串操作, ...

  7. Tomcat中Url中文乱码解决办法

    引自:http://thoughtfly.iteye.com/blog/1533481 默认的tomcat容器如果直接使用get方式在url中传中文时,传到后台接收会是乱码. 乱码问题 原因: tom ...

  8. bundle adjustment原理(1)

    那些光束平差的工具,比如SBA.SSBA之类的虽然好,然而例子和教程都不够多且不够详细,让初学者难以上手. 要传入的参数虽然有解释,然而却也不是十分清楚其含义,具体要怎么生成,生成为什么形式. 我在折 ...

  9. linux 查看进程启动路径

    在linux下查看进程大家都会想到用 ps -ef|grep XXX 可是看到的不是全路径,怎么看全路径呢? 每个进程启动之后在 /proc下面有一个于pid对应的路径 例如:ps -ef|grep ...

  10. Mybatis 系列10-结合源码解析mybatis 的执行流程

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...