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();
		 }
	 }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值