UiAutomator 代码记录 : 遍历桌面
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 代码记录 : 遍历桌面的更多相关文章
- uiautomator 代码记录 :BT接收测试
package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...
- uiautomator 代码记录 : BT发送测试
package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...
- uiautomator 代码记录 : 随机发送短信
package sms_test; import java.lang.*; import java.util.Random; import javax.microedition.khronos.egl ...
- UiAutomator 代码记录: 随机创建新联系人
package lecturer; import java.lang.*; import java.nio.Buffer; import java.util.Random; import java.i ...
- MVVM 代码记录
一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...
- sqlserver 脚本 多条记录遍历
临时表方式实现多条记录遍历 declare @oper_cart_item_id bigint; declare @oper_cart_id bigint; declare @the_last_cha ...
- 记录远程桌面登录者的IP和MAC
WINDOWS 2003 远程桌面不能记录登陆IP真是件头痛的事,本方法可以记录登陆者IP,具体的操作步骤如下: 1.建立一个存放日志的目录,如C盘下建立一个RDP的目录“C:/RDP”. 2.然后在 ...
- Echarts基于动态数据初步使用 及问题 代码记录.
ECHARTS 插件 基本的动态数据展示(横向图) 下载 echarts.commn.min.js文件 在页面中进行引用, 并为Echarts图形准备一个div盒子 <!-- 引入插件 --&g ...
- PAT甲级训练刷题代码记录
刷题链接:https://www.patest.cn/contests/pat-a-practise 1001 #include <iostream> #include <stdio ...
随机推荐
- MySQL程序之mysqlshow详解
mysqlshow命令详解 显示MySQL数据库的结构(数据库.表和列) 如果最后一个参数包含shell或SQL通配符(*,?,%,_)将显示通配符匹配的内容. 如果没有给定数据库,则显示所有匹配的数 ...
- C# 生成指定N位随机码
/// <summary> /// 获取随机码 /// </summary> /// <param name="length">长度</p ...
- SDI视频采集过程
SDI视频采集过程 GTP收发模块为视频采集系统的核心部分,包含发送和接收,完成对信号的解串和串码.并且HD-SDI信号中并非所有的信号都是有效视频信号,这部分功能由数据分析模块实现,并将提取出来的有 ...
- #ifdef __cplusplus extern "C" { #endif 含义
转载! 1.在好多程序中我们会遇到下面代码段 #ifdef __cplusplus extern "C" { #endif //c语法代码段 #if ...
- ul或者ol中添加li元素
<!doctype html><html> <head> <meta charset="utf-8"> ...
- vue element-ui 用checkebox 来模拟选值 1/0
https://jsfiddle.net/57dz2m3s/12/ 复制 粘贴 打开url就可以看到效果
- ghost之后仍然中病毒----与病毒的斗争
ghost之后仍然中病毒----与病毒的斗争我的电脑系统是XP,从来都没有安装任何杀毒软件,所有的软件都是安装在C盘的,感觉系统卡顿就用Windows一键还原(基于DOS下的ghost)还原一下,一直 ...
- C/C++基础----重载运算与类型转换
非成员版本 data1 + data2: operator+(data1, data2); 成员版本 data1 += data2: data1.operator+=(data2); 不建议的重载 逻 ...
- 【JVM参数】Java启动时,显示class是从哪个Jar中加载的
显示具体的Class是从哪个Jar文件加载 JVM参数: -verbose:class 启动后输出如下: [Opened D:\Program Files\Java\jdk1.8.0_131\jre\ ...
- vue之v-show与v-if的区别
为什么data必须返回函数? v-show和v-if的区别 v-if只有在满足条件时才渲染元素,v-show无论是否满足条件都会渲染元素,都会对元素样式的display属性进行控制. v-if可以绑定 ...