uiautomator的坑和AAPT命令方式启动一个应用程序
最近在使用UIautomator完成公司的一個主流程的自動化,因為不適用H5和IOS所以會放棄這個工具的使用,現(xiàn)在記錄在使用uiautomator的一些問題:
案列1:使用命令去啟動要運(yùn)用的apk包
使用命令方式啟動,可以使用SDK中自帶的aapt工具,路徑是在E:\Soft\JAVA\adt-bundle-windows-x86_64-20131030\sdk\build-tools\android-4.4,使用時,需要在我的電腦中去配置,配置百度能解決
1..驗證aapt是否可用,如下,驗證aapt的包名
?命令行:aapt?dump?badging?安裝包地址,如果能出現(xiàn)包名而不是報錯的提示,則aapt能夠使用
2.Uiautomator中使用aapt的方式啟動進(jìn)程:
am?start?-n?com.hzins.mobile?/?com.hzins.mobile
Am?start?-n?包名/啟動的activity
如果不知道啟動的進(jìn)程,在aapt中單獨(dú)使用命令,查看里面的activity,如下圖所示
?
?
測試代碼:Runtime.getRuntime().exec("am?start?-n?com.xxxxx.mobile(packgename)/com.hxx.xxx.act.ACT_Splash(stactivity)?");
?
案列2,在登錄控件中,登錄框和密碼框,是相同resouceid,class,并且密碼框沒有文本標(biāo)識是哪一個文本框,
解決辦法:可用“insrance”標(biāo)識定位,相同控件中
instance(0)表示第一個,instance(1)表示第二個?
不寫instance就默認(rèn)是instance(0)?
3.案列:在提交登錄時,某些控件的clickables是為flase這樣是就不能使用點(diǎn)擊如:
1.提交訂單,有提示未登錄
2.控件的點(diǎn)擊的屬性不可用,怎么獲取
?
解決辦法:獲取外層可用的控件,注意標(biāo)識
3.捕獲異常監(jiān)聽,如啟動時升級提醒和顯示框
?
解決:uiwatcher結(jié)構(gòu)應(yīng)該是這樣: main(){ 注冊watcher 一個uiselector相關(guān)操作 刪除watcher } 還需要注意:swipe(startX,?startY,?endX,?endY,?steps) --在手機(jī)上滑動,從(startX,startY)到(endX,endY)。steps表示滑動的這個距離分為幾步完成,數(shù)目越少,滑動幅度越大。
??String?watcherName?=?"watcher1";
?getUiDevice().getInstance().registerWatcher(watcherName,?new?UiWatcher(){//android.widget.ImageView是導(dǎo)航頁第一個頁面的控件
?UiObject?runte=new?UiObject(new?UiSelector().className("android.widget.ImageView"));
@Override
public?boolean?checkForCondition()?{
//?TODO?Auto-generated?method?stub
if(runte.exists())
{
?
int?x=getUiDevice().getInstance().getDisplayWidth();
int?y=getUiDevice().getInstance().getDisplayHeight();
//getUiDevice().swipe(startX,?startY,?endX,?endY,?steps)
?getUiDevice().swipe(600,?y/2,x/4,y/2,5);
}
Log.d("tag",?"成功了點(diǎn)擊");
return?true;
?
}
?});
?//去判定首頁任意一個控件
UiObject?runte=new?UiObject(new?UiSelector().className("android.widget.ImageView").resourceId("com.hzins.mobile:id/bt_ok"));
runte.clickAndWaitForNewWindow();
// 刪除watcher
getUiDevice().removeWatcher(watcherName);
?
轉(zhuǎn)載于:https://www.cnblogs.com/chongyou/p/5125499.html
總結(jié)
以上是生活随笔為你收集整理的uiautomator的坑和AAPT命令方式启动一个应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用FTP命令 1. 连接ftp服务器
- 下一篇: Divide and conquer:D