Total Control手機多控系統可以幫我們實現一台電腦同時控制多達100部手機。當我們的數十上百台手機同時需要操作的時候,除了本身的多控功能,Total Control的強大的腳本功能就可以在此時發揮重要作用了,腳本可以實現自動化批量操作手機。
今天先介紹Total Control腳本功能中的FindNode。
FindNode是Selector核心包之上的一個shell程序,FindNode 的目的是找到一個或多個UI元素(或者叫做Accessibility節點),并獲取節點信息或者對其執行操作。
Selector選擇器位于Accessibility和UIAutomator之上,每個UI元素或UI容器由一個或多個節點集标識,每個節點的ID在當前屏幕上是唯一的。Selector選擇器提供搜索一個或多個節點的各種方法。一旦獲取了節點,您就可以做一些有趣的事情,比如獲取文本/圖像,或者執行一些操作,比如單擊按鈕,或者在文本字段中輸入文本,所有這些都不需要坐标。這允許一個自動化腳本在不同的分辨率上運行,而使用坐标是不可能做到的。
例如:
JS API: 使用devices.click("OK")代替devices.click(100, 200). 就會向所有設備發送:點擊query為"OK" 的節點
MDCC: 用戶點擊主設備上的一個按鈕,該按鈕的唯一查詢(例如"T:OK")将被發送到其他設備,設備搜索到節點後并進行點擊。其目的是提供各種方法來定位節點,而無需使用屏幕坐标,沒有頁面向上/向下,隻有"scrollToView"來定位節點,這樣,相同的腳本可以在不同分辨率和屏幕大小的手機上運行。
FindNode使用Appium的JSON模塊來構造和執行JSON命令,JSON 格式為:
每個FindNode命令都在"params"對象中執行。
有兩種返回值,成功:
或失敗:
TC提供"device.sendAai()"或"devices.sendAai()"與FindNode通信:
發送"params"給FindNode。
如果FindNode在特定時間段内沒有返回,則生成超時錯誤。
對于某些比默認超時時間更長的命令,FindNode會延長時間以避免超時錯誤。
自動處理返回值(出錯時返回值為null,沒有錯誤時有具體的返回值)。
對于多設備"devices",每個設備的執行都是在單獨的線程中執行。
params對象包含3種類型的屬性:query、preAction和postAction(s)。提供的命令非常豐富,您可以使用它們編寫簡單的自動化程序。
今天先拿其中的query來舉例示範:
當然,首先,我們的第一步是要先下載安裝Total Control:
電腦安裝軟件後,用USB連接手機到電腦,啟動軟件會推送安裝包到手機。
啟動或重啟指定App
函數功能:
在當前設備下,啟動或重啟指定包名的APP
在Total Control中,用的最多的query為{}:
這将返回屏幕上的大多數節點,默認返回的是節點ID列表:
你還可以做其他的事情,就像下面的這樣:
{query:"CC:!=0"} 或 {query:"CC:>0}:子節點個數大于0的nodes。
{query:"IT:>10000"},inputType大于10000的nodes。
{query:"CC:!=0||IT:>10000"},子節點個數大于0 并且 inputType大于10000的nodes。
{query:"TP:textInput||IX:2", postAction:"setText", input:"Hello"},找到第三個輸入框并在輸入"Hello"。
{query:"T:Input text here", postAction:"setText('Hello')"},一些空的文本字段有初始提示,搜索提示并輸入"Hello"。
{query:"C:.TextView||T: 聯系人"} 點擊類名為TextView,并且text字段為"Contacts"
{elements:["abcd", "123e", "234f"], query:"IX:1||OY:1", postAction:"click"}
以上就是關于Total Control FindNode的腳本介紹及其運用方式,除此之外,還有AAI、AAIS等自動化腳本功能,廣泛應用于安卓設備的批量管理,趕緊試試吧!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!