AutoJS
一個支持無障礙服務的Android平臺上的JavaScript IDE。Autojs主要是基於安卓系統的無障礙服務,實現自動化操控和監控手機信息處理。python
特性:
由無障礙服務實現的簡單易用的自動操做函數git
懸浮窗錄製和運行github
更專業&強大的選擇器API,提供對屏幕上的控件的尋找、遍歷、獲取信息、操做等。相似於Google的UI測試框架UiAutomator,您也能夠把他當作移動版UI測試框架使用shell
採用JavaScript爲腳本語言,並支持代碼補全、變量重命名、代碼格式化、查找替換等功能,能夠做爲一個JavaScript IDE使用微信
支持使用e4x編寫界面,並能夠將JavaScript打包爲apk文件,您能夠用它來開發小工具應用app
支持使用Root權限以提供更強大的屏幕點擊、滑動、錄製功能和運行shell命令。錄製錄製可產生js文件或二進制文件,錄製動做的回放比較流暢python爬蟲
提供截取屏幕、保存截圖、圖片找色、找圖等函數框架
可做爲Tasker插件使用,結合Tasker可勝任平常工做流編輯器
帶有界面分析工具,相似Android Studio的LayoutInspector,能夠分析界面層次和範圍、獲取界面上的控件信息函數
項目介紹:
項目地址:https://github.com/hyb1996/Auto.js
官方論壇:https://www.autojs.org/
在線文檔:https://hyb1996.github.io/AutoJs-Docs/#/
專業版地址:https://pro.autojs.org/
安裝
免費版在網上搜索autojs.apk,下載後便可安裝,免費版已更新至4.1.1Beta而且再也不更新。最新版已經開始收費,下載地址:https://pro.autojs.org/
開啓手機無障礙服務
![](http://static.javashuo.com/static/loading.gif)
在某些版本上打開音量上鍵中止全部腳本,防止死循環腳本(我所使用的版本上默認開啓)
打開懸浮窗進行佈局分析
![](http://static.javashuo.com/static/loading.gif)
![懸浮窗功能](http://static.javashuo.com/static/loading.gif)
編輯環境配置
autojs軟件提供了很是好的手機端編寫支持,擁有強大的提示功能,基本上咱們在手機端進行編寫也是很是溫馨的。同時有VS Code 插件可提供基礎的在桌面開發的功能。免費版咱們下載:Auto.js-VSCodeExt
![根據咱們安裝的版本進行選擇](http://static.javashuo.com/static/loading.gif)
插件命令:
按Ctrl+Shift+P或點擊「查看」->「命令面板」可調出命令面板,輸入Auto.js能夠看到如下命令:
Start Server: 啓動插件服務。以後在確保手機和電腦在同一區域網的狀況下,在Auto.js的側拉菜單中使用鏈接電腦功能鏈接。
Stop Server: 中止插件服務。
Run: 運行當前編輯器的腳本。若是有多個設備鏈接,則在全部設備運行。
Rerun: 中止當前文件對應的腳本並從新運行。若是有多個設備鏈接,則在全部設備從新運行。
Stop: 中止當前文件對應的腳本。若是有多個設備鏈接,則在全部設備中止。
StopAll: 中止全部正在運行的腳本。若是有多個設備鏈接,則在全部設備運行全部腳本。
Save: 保存當前文件到手機的腳本默認目錄(文件名會加上前綴remote)。若是有多個設備鏈接,則在全部設備保存。
RunOnDevice: 彈出設備菜單並在指定設備運行腳本。
SaveToDevice: 彈出設備菜單並在指定設備保存腳本。
New Project(新建項目):選擇一個空文件夾(或者在文件管理器中新建一個空文件夾),將會自動建立一個項目
Run Project(運行項目):運行一個項目,須要Auto.js 4.0.4Alpha5以上支持
Save Project(保存項目):保存一個項目,須要Auto.js 4.0.4Alpha5以上支持
使用vscode進行開發
在命令面板選擇Start Server啓動服務,右下角會顯示Auto.js server running
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
將手機與電腦鏈接到同一個WiFi,查看電腦的IP地址。在手機端AutoJS側邊菜單中選擇遠程調試,並輸入電腦IP,vscode中會顯示鏈接成功
AutoJS側邊欄設置
![vscode右下角](http://static.javashuo.com/static/loading.gif)
vscode中建立JS文件,按F5或者選擇Run命令,便可在手機端進行運行
在vscode命令面板中選擇Save,將自動發送並保存到手機上
![](http://static.javashuo.com/static/loading.gif)
經常使用命令及函數
auto.waitFor()
檢查無障礙服務是否已經啓用,若是沒有啓用則跳轉到無障礙服務啓用界面,並等待無障礙服務啓動;當無障礙服務啓動後腳本會繼續運行。
app.launchApp(appName)
appName
{string} 應用名稱
經過應用名稱啓動應用。若是該名稱對應的應用不存在,則返回false; 不然返回true。若是該名稱對應多個應用,則只啓動其中某一個。
UiSelector.text(str)
str
{string} 控件文本返回 {UiSelector} 返回選擇器自身以便鏈式調用
爲當前選擇器附加控件"text等於字符串str"的篩選條件。
控件的text(文本)屬性是文本控件上的顯示的文字,例如微信左上角的"微信"文本。
UiSelector.textContains(str)
str
{string} 要包含的字符串
爲當前選擇器附加控件"text須要包含字符串str"的篩選條件。
這是一個比較有用的條件,例如QQ動態頁和微博發現頁上方的"你們都在搜…."的控件能夠用textContains("你們都在搜").findOne()
來獲取。
bounds()
返回 Rect
返回控件在屏幕上的範圍,其值是一個Rect對象
findOne(selector)
selector
UiSelector返回 UiOobject
根據選擇器selector在該控件的子控件、孫控件…中搜索符合該選擇器條件的控件,並返回找到的第一個控件;若是沒有找到符合條件的控件則返回null
。
其餘API請看官方文檔。要注意控件的click函數不必定會生效,所以推薦使用全局點擊click函數。
京東簽到領京豆
開啓AutoJS的懸浮窗
打開京東商城APP
選擇AutoJS懸浮窗的佈局分析
選擇佈局分析
佈局範圍分析
點擊領京豆
生成代碼
![](http://static.javashuo.com/static/loading.gif)
查看text、id、desc,也能夠選擇生成代碼
上面咱們看到生成代碼失敗了,那麼就要查看控件信息,發現底下text屬性爲「領京豆」
而後咱們就能夠在代碼中使用text('領京豆')
,來獲取這個控件了。
目前最新版的AutoJS Pro已是付費制了,37元永久免費,也但願你們能支持做者,可是免費版的在網上依然能搜到,能夠下載比較新的版本使用,基本上也能知足咱們不少需求。另外論壇已經中止更新了,可是咱們依然能夠在上面搜索到一些腳本。固然直接在GitHub上就能夠搜索到更多的腳本。
簽到領京豆腳本已經上傳到GitHub,請關注公衆號,並回復:領京豆,獲取源代碼。
本文分享自微信公衆號 - python爬蟲實戰之路(small_bud1989)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。