最近發現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就好了,不知道爲什麼。