使用auto.js實現自動化每日打卡功能

使用auto.js實現自動化每日打卡

疫情原因,需要在傢每天定時打卡,每天剛起床的時候避免不瞭出現註意力不集中或者是看不到app,點不到按鈕什麼的(我瞎說的)。

所以,就想搞一個自動化操作的東西,省去瞭這勞神費力的每日打卡。

說幹就幹,於是乎就想起瞭之前雙十一寫的疊貓貓的無障礙腳本,所以這個還是不在話下的。

用到的工具庫:auto.js

因為auto.js需要依賴安卓手機上的無障礙操作。所以目前隻支持安卓手機並且需要在安卓6.0以上,這個官方網站都有詳細介紹,我就不在此過多贅述瞭。多說一下,這個auto.js作者在19年的時候就不在維護瞭,所以我選擇的另一個接手auto.js的庫:autox.js,他們兩個都是大同小異的,用哪一個也不影響啦。

實際操作

首先需要保證電腦和手機在同一網絡下,並且電腦上安裝vscode,搜索插件“auto.js”去安裝。你也可以在手機上編輯代碼,但是這樣實在是不方便。安裝完成後按下“cmd+shift+P”,輸入“auto”,下面列表裡會出現相關設置,點擊”開啟服務”,即可在電腦上編輯auto.js代碼.

手機上需要打開設置點擊“連接到電腦”,輸入電腦ip,即可在電腦端看到新設備連接的提示。(註意必須首先要在電腦選擇開啟服務後才能連接)

接下來就可以利用手機端的auto.js對各個頁面進行調試以及佈局分析瞭。

寫好代碼以後點擊vscode上的保存到所有設備,剛才電腦上的代碼就同步到手機啦。點擊插件的運行按鈕就可以看到運行的全過程。

對於腳本的編寫和操作也有大把的教程,我隻是作為這一個需求而寫的代碼,也沒有過多深究,有興趣的可以自己去學習。這裡隻說一下我遇到的一些問題。

  • 當一個頁面的組件狀態有兩個是一樣的,就需要通過寫死坐標來點擊瞭。手機開啟開發人員選項中的“指針位置”就可以清楚的看到當前手指觸摸的位置坐標啦。
  • 有的時候按鈕的clickable屬性不可用,可以試試click(“需要點擊的文字”),會有奇效。

最後,寫完的腳本可以利用auto.js的“打包應用”進行打包和分發瞭。

最後的最後,奉上代碼:

auto()
auto.waitFor();
console.show(true);//打開控制臺
console.log("i輕工大自動打卡腳本");
console.log("version--------1.1");
console.log("autuer---zhaosheng");
app.launch('io.cordova.zhqy')
console.log("已打開app");

sleep(5000);
//點擊應用服務
var fuwu = text("應用服務").findOnce();
fuwu.click();
console.log("選擇應用服務");
sleep(2000)
console.log("點擊疫情防控");
click("疫情防控")
sleep(2000)
// 2.居傢學習
className("android.view.View").depth(11).desc("home").findOne().click();
console.log("點擊居傢學習");
// id("home").findOne().click()
sleep(1500)
//健康日報
// click(222,945)
console.log("點擊健康日報");
click("健康日報")
sleep(2000)
//選擇當前日期
// 1.獲取當天日期 
console.log("計算當前日期");
var myDate = new Date();
let day =  myDate.getDate();  //對應頁面數字
if(day < 10){
   day = "0"+day
   console.log("當前為:"+day);
}
// alert(day)
click(day)
console.log("點擊立即打卡");
click("立即打卡")
sleep(3000)
click("點擊獲取當前位置")
sleep(2000)
click(244,2130)
sleep(3000)
swipe(550,1925,550,465,2000)
swipe(550,1925,550,465,2000)
sleep(2000)
click(493,2095)
sleep(2000)
click(764,1638)

到此這篇關於使用auto.js實現自動化每日打卡的文章就介紹到這瞭,更多相關auto.js自動化每日打卡內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: