AiWork请求服务器的api接口获取到元素节点id数据,然后使用节点信息列表进行点击操作

开发api接口

由于某音的节点每个版本都会变化,需要写一个节点管理器。
先使用php开发增删改查的api接口

file

开发管理页面

节点数据列表

file

动态添加或修改节点数据

file

按照版本号和包名,请求节点数据

file

脚本开发

先开发获取节点数据的api接口
通过POST访问接口,获取到指定应用指定版本的节点信息数组
为了防止接口被乱用,接口加了用户名参数,在后台验证用户名是否合法

file

根据包名获取到应用的版本名,再根据包名和版本名,请求api接口,得到当前版本的节点数据
有了节点信息数组以后,再根据后台添加节点数据时,设定的节点标记,取出节点id。

let packageName = 'com.ss.android.ugc.aweme';        // 应用包名
let app_versoin = APP.getAppVersion(packageName)  // 取到应用的版本名
let nodeData = API.getNodeData(packageName, app_versoin)  // 请求api接口,得到当前版本的节点数据
let ids = NODES.getPointNodeIDData(nodeData, 'user_page_fans_tag')   // 取出节点id,支持多个,用竖线分割

使用AiWork自带的节点分析工具,找到要操作的节点
file

生成代码

var nodesObj = auto.nodeSearch(3000).id("com.ss.android.ugc.aweme:id/pk=").className("android.widget.FrameLayout");
if(nodesObj!=''){
   var nodeObj=nodesObj.getNode(0);
}

根据生成的代码,来编写一个节点信息表
表中定义了要查找的节点id(支持多个)、类名、是否可点击、查找超时的时长

let nodeList = [
    {
        ids: 'zx|zxi',
        className: 'android.widget.RelativeLayout',
        clickable: true,
        timeOut: 1000,
    }
]

接下来封装一个查找元素的方法findNode
执行点击操作。

主要的测试代码如下:

let packageName = 'com.ss.android.ugc.aweme';        // 应用包名
let app_versoin = APP.getAppVersion(packageName)
let nodeData = API.getNodeData(packageName, app_versoin)
let ids = NODES.getPointNodeIDData(nodeData, 'user_page_fans_tag')
if (!isEmpty(ids)) {
    let nodeList = [
        {
            ids: 'zx|zxi',
            className: 'android.widget.RelativeLayout',
            clickable: true,
            timeOut: 1000,
        }
    ]

    console.log(JSON.stringify(NODES.findNode(nodeList, true, 1 * 1000)))
}

代码实现的效果,就是先请求api接口,获取到节点数据,找到节点后,执行点击。
这个案例,实现了寻找用户主页的粉丝列表入口,点击后,进入到此用户的粉丝列表。

1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » AiWork请求服务器的api接口获取到元素节点id数据,然后使用节点信息列表进行点击操作

企业级大数据智能营销管理系统

了解详情