当前位置: 首页 > news >正文

按键精灵ios脚本新增元素功能助力辅助工具开发(一)

元素节点功能(iOSElement)​

在按键精灵 iOS 新版 APP v2.2.0 中,新增了元素节点功能 iOSElement,该功能包含共 15 个函数。这一功能的出现,为开发者在处理 iOS 应用界面元素时提供了更为精准和高效的方式。通过这些函数,开发者能够更加便捷地定位、操作应用中的各种元素,从而实现更复杂的自动化任务。例如,在自动化测试场景中,可以利用 iOSElement 函数快速找到特定的按钮、文本框等元素,并模拟用户的点击、输入等操作,大大提高测试效率。

下面介绍下5个函数信息:iOSElement.Source、iOSElement.Find、iOSElement.Finds、iOSElement.FindChild、iOSElement.FindChildren

函数名称

iOSElement.Source 获取整个元素节点信息

功能

获取返回包含整个页面元素节点信息的键值表

语法

result = iOSElement.Source()

代码例子:

Dim result
result = iOSElement.Source()
If result["code"] = 0 Then 
    TracePrint Encode.TableToJson(result["data"])
Else 
    TracePrint result["msg"]
End If

函数名称

iOSElement.Find 查找并返回第一个符合条件的元素

功能

查找并返回第一个符合条件的元素信息的键值表

语法

result = iOSElement.Find(selector, isRegex)

代码范例

Dim result, selector
RunApp "com.apple.Preferences"
Delay 1000
selector = {"text": "通用"}
result = iOSElement.Find(selector)
If result["code"] = 0 Then 
    TracePrint Encode.TableToJson(result["data"])
Else 
    TracePrint result["msg"]
End If

// 使用正则匹配模糊查找
selector = {"text": "通.+"}
result = iOSElement.Find(selector, true)
If result["code"] = 0 Then 
    TracePrint Encode.TableToJson(result["data"])
Else 
    TracePrint result["msg"]
End If

函数名称

iOSElement.Finds 查找并返回所有符合条件的元素

功能

查找并返回所有符合条件的元素信息的键值表

语法

result = iOSElement.Finds(selector, isRegex)

代码范例

Dim result, selector
RunApp "com.apple.Preferences"
Delay 1000
selector = {"id": "UITableViewCellContentView"}
result = iOSElement.Finds(selector)
If result["code"] = 0 Then 
    For i = 1 To Len(result["data"])
        TracePrint Encode.TableToJson(result["data"][i])
    Next
Else 
    TracePrint result["msg"]
End If
    
// 使用正则匹配模糊查找
selector = {"text": "通.+", "id": "UITableViewLabel"}
result = iOSElement.Finds(selector, true)
If result["code"] = 0 Then 
    For i = 1 To Len(result["data"])
        TracePrint result["data"][i]["text"]
    Next
Else 
    TracePrint result["msg"]
End If

函数名称

iOSElement.FindChild 在指定的父元素下查找并返回第一个符合条件的元素

功能

在指定的父元素下查找并返回第一个符合条件的元素信息键值表

语法

result = iOSElement.FindChild(parent, selector, isRegex)

代码范例

Dim result, parent, selector
RunApp "com.apple.Preferences"
Delay 1000
parent = {"id": "UITableViewCellContentView"}
selector = {"id":"UITableViewLabel"}
result = iOSElement.Find(parent)
If result["code"] = 0 Then 
    result = iOSElement.FindChild(result["data"], selector)
    If result["code"] = 0 Then 
        TracePrint Encode.TableToJson(result["data"])
    Else 
        TracePrint result["msg"]
    End If
Else 
    TracePrint result["msg"]
End If

// 使用正则匹配模糊查找
parent = {"index": 55}
selector = {"text":"[\\u4e00-\\u9fa5]"} '匹配中文
result = iOSElement.Find(parent)
If result["code"] = 0 Then 
    result = iOSElement.FindChild(result["data"], selector, true)
    If result["code"] = 0 Then 
        TracePrint Encode.TableToJson(result["data"])
    Else 
        TracePrint result["msg"]
    End If
Else 
    TracePrint result["msg"]
End If

函数名称

iOSElement.FindChildren 在指定的父元素下查找并返回所有符合条件的元素

功能

在指定的父元素下查找并返回所有符合条件的元素信息的键值表

语法

result =iOSElement.FindChildren(parent, selector, isRegex)

代码范例

Dim result, parent, selector
RunApp "com.apple.Preferences"
Delay 1000
parent = {"id": "UITableView"}
selector = {"id": "PSTableCell"}
result = iOSElement.Find(parent)
If result["code"] = 0 Then 
    result = iOSElement.FindChildren(result["data"], selector)
    If result["code"] = 0 Then 
        For i = 1 To Len(result["data"])
            TracePrint Encode.TableToJson(result["data"][i])
        Next
    Else 
        TracePrint result["msg"]
    End If
Else 
    TracePrint result["msg"]
End If

// 使用正则匹配模糊查找
parent = {"id": "UITableView"}
selector = {"text":"[\\u4e00-\\u9fa5]", "id": "UITableViewLabel"}   '匹配中文
result = iOSElement.Find(parent)
If result["code"] = 0 Then 
    result = iOSElement.FindChildren(result["data"], selector, true)
    If result["code"] = 0 Then 
        For i = 1 To Len(result["data"])
            TracePrint result["data"][i]["text"]
        Next
    Else 
        TracePrint result["msg"]
    End If
Else 
    TracePrint result["msg"]
End If

相关文章:

  • 【PyTorch】深度学习实践——第二章:线性模型
  • LVGL输入设备管理
  • Dinky 安装部署并配置提交 Flink Yarn 任务
  • 11. CSS从基础样式到盒模型与形状绘制
  • C++学习之路,从0到精通的征途:继承
  • 基于脑功能连接组和结构连接组的可解释特定模态及交互图卷积网络|文献速递-深度学习医疗AI最新文献
  • 在虚拟机Ubuntu18.04中安装NS2教程及应用
  • 大白话解释联邦学习
  • hadoop3.x单机部署
  • Mysql索引优化
  • Spring Boot之Web服务器的启动流程分析
  • 【android bluetooth 框架分析 02】【Module详解 7】【VendorSpecificEventManager 模块介绍】
  • 使用光标测量,使用 TDR 测量 pH 和 fF
  • AI 模型训练轻量化技术在军事领域的实战应用与技术解析
  • ​​华为云服务器:智能算力网格​
  • Vue 3.5 新特性深度解析:全面升级的开发体验
  • MQTT协议详解:物联网通信的轻量级解决方案
  • idea Maven 打包SpringBoot可执行的jar包
  • 【YOLO模型】参数全面解读
  • 微信小程序 密码框改为text后不可见,需要点击一下
  • 福建厦门市副市长、市公安局局长陈育煌出任吉林省公安厅厅长
  • 2025上海科技节本周六启幕,机器人和科学家同走AI科学红毯
  • 在地球另一端的交流,架起2万公里间更多共赢的桥梁
  • 海航回应“男团粉丝为追星堵住机舱通道”:已紧急阻止
  • 未来之城湖州,正在书写怎样的城市未来
  • 欧盟决意与俄罗斯能源彻底决裂之际,美国谋划新生意:进口俄气对欧转售