日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uiautomator的坑和AAPT命令方式启动一个应用程序

發(fā)布時(shí)間:2023/12/2 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uiautomator的坑和AAPT命令方式启动一个应用程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在使用UIautomator完成公司的一個(gè)主流程的自動(dòng)化,因?yàn)椴贿m用H5IOS所以會(huì)放棄這個(gè)工具的使用,現(xiàn)在記錄在使用uiautomator的一些問題:

案列1:使用命令去啟動(dòng)要運(yùn)用的apk

使用命令方式啟動(dòng),可以使用SDK中自帶的aapt工具,路徑是在E:\Soft\JAVA\adt-bundle-windows-x86_64-20131030\sdk\build-tools\android-4.4,使用時(shí),需要在我的電腦中去配置,配置百度能解決

1..驗(yàn)證aapt是否可用,如下,驗(yàn)證aapt的包名

?命令行:aapt?dump?badging?安裝包地址,如果能出現(xiàn)包名而不是報(bào)錯(cuò)的提示,則aapt能夠使用

2.Uiautomator中使用aapt的方式啟動(dòng)進(jìn)程:

am?start?-n?com.hzins.mobile?/?com.hzins.mobile

Am?start?-n?包名/啟動(dòng)的activity

如果不知道啟動(dòng)的進(jìn)程,在aapt中單獨(dú)使用命令,查看里面的activity,如下圖所示

?

?

測(cè)試代碼:Runtime.getRuntime().exec("am?start?-n?com.xxxxx.mobile(packgename)/com.hxx.xxx.act.ACT_Splash(stactivity)?");

?

案列2,在登錄控件中,登錄框和密碼框,是相同resouceid,class,并且密碼框沒有文本標(biāo)識(shí)是哪一個(gè)文本框,

解決辦法:可用“insrance”標(biāo)識(shí)定位,相同控件中

instance(0)表示第一個(gè),instance(1)表示第二個(gè)?

不寫instance就默認(rèn)是instance(0)?

3.案列:在提交登錄時(shí),某些控件的clickables是為flase這樣是就不能使用點(diǎn)擊如:

1.提交訂單,有提示未登錄

2.控件的點(diǎn)擊的屬性不可用,怎么獲取

?

解決辦法:獲取外層可用的控件,注意標(biāo)識(shí)

3.捕獲異常監(jiān)聽,如啟動(dòng)時(shí)升級(jí)提醒和顯示框

?

解決:uiwatcher結(jié)構(gòu)應(yīng)該是這樣: main(){ 注冊(cè)watcher 一個(gè)uiselector相關(guān)操作 刪除watcher } 還需要注意:swipe(startX,?startY,?endX,?endY,?steps) --在手機(jī)上滑動(dòng),從(startX,startY)(endX,endY)。steps表示滑動(dòng)的這個(gè)距離分為幾步完成,數(shù)目越少,滑動(dòng)幅度越大。

??String?watcherName?=?"watcher1";

?getUiDevice().getInstance().registerWatcher(watcherName,?new?UiWatcher(){//android.widget.ImageView是導(dǎo)航頁第一個(gè)頁面的控件

?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;

?

}

?});

?//去判定首頁任意一個(gè)控件

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命令方式启动一个应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。