android UiAutomator寫一個QQ小號給大號點讚的case

最近發現QQ有一個點贊排行榜的東西,想到自己好幾個小號,故可以拿來利用一下。試了一下效果不錯,順便學習了一下am啓動和關閉應用。

public void qqPraise() throws IOException, UiObjectNotFoundException, InterruptedException {
//關閉QQ
Runtime.getRuntime().exec("am force-stop com.tencent.mobileqq");
sleep(1000);
//啓動QQ
Runtime.getRuntime().exec("am start -n com.tencent.mobileqq/.activity.SplashActivity");
waitForUiObject("消息");//等待主頁面加載
swipeRight();//進入右滑頁面
//點贊
praiseToMe();
for(int i=0;i<8;i++){
changeQQAccount();
praiseToMe();
}
//關閉QQ,如果運行中想結束得加上waitfor();
Runtime.getRuntime().exec("am force-stop com.tencent.mobileqq").waitFor();
}
下面是具體步驟的實現
//點贊
public void praiseToMe() throws UiObjectNotFoundException {
getUiObjextByResourceId("com.tencent.mobileqq:id/head").clickAndWaitForNewWindow();
getUiObjectByDescContains("次贊,按鈕").clickAndWaitForNewWindow();
getUiObjectByText("我贊過誰").clickAndWaitForNewWindow();
//按十次點贊按鈕
Rect bounds = getUiObjectByTextContains("餓的時候想着來什麼").getFromParent(new UiSelector().description("贊")).getBounds();
int x = bounds.centerX()+bounds.width()/4;
int y = bounds.centerY()+bounds.height()/4;
for(int i=0;i<10;i++){
clickPiont(x, y);
}
/*這個方法執行起來比較慢
for(int i=0;i<10;i++){
clickRightBottom(getUiObjectByTextContains("餓的時候想着來什麼").getFromParent(new UiSelector().description("贊")));
}*/
pressTimes(KeyEvent.KEYCODE_BACK, 2);//回到右滑界面
}
//切換QQ賬號
public void changeQQAccount() throws UiObjectNotFoundException {
getUiObjectByText("設置").clickAndWaitForNewWindow();
sleep(1000);
waitForResourceIdAndClick("com.tencent.mobileqq:id/account_switch");
//切換賬號,每次點擊最後一個賬號
getUiObjectByResourIdIndex("com.tencent.mobileqq:id/name", 7).clickAndWaitForNewWindow();
pressTimes(KeyEvent.KEYCODE_BACK, 2);//回到右滑界面
}


這裏切換QQ的時候點擊賬號管理很不好用,加了1s的延遲也不行,後來改成resoucerid就好了,不知道爲什麼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章