首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Total Control手机多控软件脚本功能之FindNode

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列表:

你还可以做其他的事情,就像下面的这样:

或 :子节点个数大于0的nodes。

,inputType大于10000的nodes。

,子节点个数大于0 并且 inputType大于10000的nodes。

,找到第三个输入框并在输入"Hello"。

,一些空的文本字段有初始提示,搜索提示并输入"Hello"。

点击类名为TextView,并且text字段为"Contacts"

以上就是关于Total Control FindNode的脚本介绍及其运用方式,除此之外,还有AAI、AAIS等自动化脚本功能,广泛应用于安卓设备的批量管理,赶紧试试吧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220907A05HLR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券