Uiautomator——实例分析——唯品会的优物

     本文通过实例来分析uiautomator的具体操作


<span style="font-size:10px;">//2015年1月15日,编写用于优物自动化的程序;用于练习和确认Uiautomator的学习情况
package test;

import jp.jun_nama.test.utf7ime.helper.Utf7ImeHelper;
import android.os.RemoteException;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;


public class Runner  extends UiAutomatorTestCase{
	
	public void test() throws UiObjectNotFoundException , RemoteException{
		getUiDevice().wakeUp();//唤醒APP
		findAndRunApp();		
//		try{                                                                                                                                                                //进首页后延时3s
//			Thread.sleep(3000);
//			}catch(InterruptedException e1){
//				e1.printStackTrace();
//			}			
		loginApp("************","*******");
		exitToMainWindow();
		loginoutApp();
		loginApp("**********","*******");
		modifyPassword( "*******","*********" );
		exitToMainWindow();
		loginApp("*********","*******");
		feedback("元气少女鹿都不回我的。。。鹿是一种温顺可爱的动物,今人形容女孩子温顺可爱,会说这女孩像一只温顺的小鹿;");
		selectcity("广州");
		selectbrand("唯品会");
		attention();
		cancelattention();
		loginoutApp();
		exitToMainWindow();	
	}

	//寻找和打开APP
	private void findAndRunApp() throws UiObjectNotFoundException{
		getUiDevice().pressHome();
		UiScrollable appview = new UiScrollable (new UiSelector().scrollable(true));
		appview.setAsHorizontalList();
		UiObject openapp = appview.getChildByText(new UiSelector().<span style="color:#3333FF;">className(android.widget.TextView.class.getName()) , "优物")</span>;
		openapp.clickAndWaitForNewWindow();
		System.out.println("find youwu_App");
		sleep(5000);//睡眠5s
//		System.out.println("sleep success");
	}
	
	//登陆APP
	private void loginApp(String userid , String userkey) throws UiObjectNotFoundException{
                <span style="color:#3333FF;">//根据</span></span><span style="font-size:10px;"><span style="color:#3333FF;">resourceId来获取对象</span>
</span><span style="font-size:10px;">                UiObject mybutton = new UiObject(new UiSelector().<span style="color:#3333FF;">resourceId</span>("com.stunner.vipshop:id/menu_3"));//点击首页-我
		mybutton.clickAndWaitForNewWindow();
		UiObject loginbutton =new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/login"));//点击我的尤物页-登陆按钮
		loginbutton.clickAndWaitForNewWindow();
		UiObject clearbutton =new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/btn_clean"));//点击输入账号的清除叉叉
		clearbutton.clickAndWaitForNewWindow();
		UiObject username = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/username"));//点击输入用户名
		username.setText(userid);
		UiObject  password = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/password"));//点击输入密码
		password.setText(userkey);
		UiObject login = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/login_button"));//点击登陆按钮
		login.clickAndWaitForNewWindow();
		UiObject FirstPage = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_1"));//回到首页
		FirstPage.clickAndWaitForNewWindow();
		System.out.println("login success");
		sleep(5000);//休眠5s
		
//		UiObject phonetxt = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/txt_phone"));
//		
                if(phonetxt.exists())     <span style="color:#3366FF;">//判断对象是否存在,然后进行相关操作。</span>
//			System.out.println("login success");
	}
	
	//退出登陆
	private void loginoutApp() throws UiObjectNotFoundException{
		UiObject mybutton = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_3"));//点击首页-我
		mybutton.clickAndWaitForNewWindow();
		UiObject setting = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/layout_main_setting"));//点击设置
		setting.clickAndWaitForNewWindow();
		UiObject exit = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/txt_logout"));//点击-退出登录
		exit.clickAndWaitForNewWindow();
		sleep(2000);
		getUiDevice().pressBack();//点击-返回
		UiObject FirstPage = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_1"));//回到首页
		FirstPage.clickAndWaitForNewWindow();
		System.out.println("exit success");
	}
	//修改密码
	private void modifyPassword(String oldkey , String newkey ) throws UiObjectNotFoundException{
		UiObject mybutton = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_3"));//点击首页-我
		mybutton.clickAndWaitForNewWindow();
		UiObject setting = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/layout_main_setting"));//点击设置
		setting.clickAndWaitForNewWindow();
		UiObject modify = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/layout_ps")) ;//点击-修改密码
		modify.clickAndWaitForNewWindow();
		UiObject in_oldkey = new UiObject (new UiSelector().resourceId("com.stunner.vipshop:id/password"));//读参写入密码
		in_oldkey.setText(oldkey);
		UiObject in_newkey = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/password_change"));//输入新密码
		in_newkey.setText(newkey);
		UiObject confirm = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/confir_button"));//点击确认
		confirm.clickAndWaitForNewWindow();
		sleep(3000);
	}
	
	//意见反馈
	private void feedback(String tucao) throws UiObjectNotFoundException{
		UiObject mybutton = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_3"));//点击首页-我
		mybutton.clickAndWaitForNewWindow();
		UiObject feedback_button = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/layout_feedback"));//点击吐槽
		feedback_button.clickAndWaitForNewWindow();
		UiObject  fd_content =new UiObject(new UiSelector().className("android.widget.LinearLayout").index(2).className("android.widget.EditText").index(0));//输入中文文字
		fd_content.setText(Utf7ImeHelper.e(tucao));
		sleep(6000);
		UiObject tijiao =new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/title_btn_right"));//点击提交标签
		tijiao.clickAndWaitForNewWindow();
		UiObject FirstPage = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_1"));//回到首页
		FirstPage.clickAndWaitForNewWindow();
		sleep(2000);	
	}
	
	//选择城市
	private void selectcity(String city) throws UiObjectNotFoundException{
		UiObject city_button = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/txt_city"));//点击首页-选择城市
		city_button.clickAndWaitForNewWindow();
		UiObject go_search = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/go_search"));//点击-搜索框
		go_search.clickAndWaitForNewWindow();
		UiObject edt_search = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/edt_search"));//输入-城市
		edt_search.setText(Utf7ImeHelper.e(city));
		sleep(4000);
		UiObject text = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/text"));//点击搜索出来的城市,若无此城市,testcase直接不运行,fail
		text.clickAndWaitForNewWindow();
		sleep(2000);
		System.out.println("select city success!");
	}
	
	//选择品牌
	private void selectbrand(String brand) throws UiObjectNotFoundException{
		UiObject btn_search = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/btn_search"));//点击选择-品牌标签
		btn_search.clickAndWaitForNewWindow();
		UiObject go_search = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/go_search"));//点击-品牌搜索框
		go_search.clickAndWaitForNewWindow();
		UiObject edt_search = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/edt_search"));//输入-搜索的品牌
		edt_search.setText(Utf7ImeHelper.e(brand));
		sleep(4000);
		UiObject info_layout = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/info_layout"));//选择你搜索到品牌的第一个
		info_layout.clickAndWaitForNewWindow();
		sleep(2000);
		System.out.println("select brand success!");
	}

	//关注品牌
	private void attention() throws UiObjectNotFoundException, RemoteException{
		UiObject attention_button = new UiObject(new UiSelector().className("android.view.View").index(1));
		attention_button.click();
		sleep(2000);
		System.out.println("attention brand success!");
		exitToMainWindow();
	}
	//取消关注
	private void cancelattention() throws UiObjectNotFoundException{
		UiObject mybutton = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_3"));//点击首页-我
		mybutton.clickAndWaitForNewWindow();
		UiObject brandnuma = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/layout_brandnuma"));//点击-我关注的品牌
		brandnuma.clickAndWaitForNewWindow();
		UiObject titlebar = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/titlebar"));//向左滑动,出现-取消关注的标签
		titlebar.swipeLeft(5);
		UiObject button1 = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/button1"));//点击-取消关注
		button1.click();
		getUiDevice().pressBack();
		UiObject FirstPage = new UiObject(new UiSelector().resourceId("com.stunner.vipshop:id/menu_1"));//回到首页
		FirstPage.clickAndWaitForNewWindow();
		System.out.println("cancel attention success!");	
	}
	
	//退出到手机第一屏
	private void exitToMainWindow() throws UiObjectNotFoundException, RemoteException{
//		 android.os.Process.killProcess(android.os.Process.myPid()) ;   //退出uiautomator的进程
//		 System.out.println("do exit"); 
			getUiDevice().pressRecentApps();
			sleep(5000);			
			UiObject CloseApp = new UiObject(new UiSelector().className("android.widget.ScrollView").index(1));
			CloseApp.swipeRight(20);
			System.out.println("Close App success!!!");
			getUiDevice().pressBack();
			findAndRunApp();		
	}
}</span>


你可能感兴趣的:(Uiautomator——实例分析——唯品会的优物)