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

元素节点功能(iOSElement)​

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

下面介绍下5个函数信息:iOSElement.FindParent、iOSElement.FindSibling、iOSElement.SetText、iOSElement.Click、iOSElement.ScrollToOffset

函数名称

iOSElement.FindParent 获取指定元素的父元素

功能

获取指定元素的父元素信息的键值表

语法

result = iOSElement.FindParent(subElement)

代码范例

Dim result, subelement

RunApp "com.apple.Preferences"

Delay 1000

subElement = {"id": "PSTableCell"}

result = iOSElement.Find(subElement)

If result["code"] = 0 Then

result = iOSElement.FindParent(result["data"])

If result["code"] = 0 Then

TracePrint Encode.TableToJson(result["data"])

Else

TracePrint result["msg"]

End If

Else

TracePrint result["msg"]

End If

函数名称

iOSElement.FindSibling 获取指定元素的所有同层级元素

功能

获取指定元素的所有同层级元素信息的键值表

语法

result = iOSElement.FindSibling(element,selector)

代码范例

Dim result, selector

RunApp "com.apple.Preferences"

Delay 1000

selector = {"id": "PSTableCell"}

result = iOSElement.Find(selector)

If result["code"] = 0 Then

// 获取当前层级的所有兄弟节点

result = iOSElement.FindSibling(result["data"])

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

// 查找指定条件的兄弟节点

result = iOSElement.FindSibling(result["data"], {"text":"隐私", "type":"UITableViewLabel"})

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

函数名称

iOSElement.SetText 设置指定输入框元素的内容

功能

设置指定输入框元素的内容,支持完整目标元素节点或者元素查找条件,如查找到多个元素则只操作第一个元素

语法

result = iOSElement.SetText(element, text, isClear)

代码范例

Dim result, selector

RunApp "com.apple.Preferences"

Delay 1000

selector = {"id": "UISearchBarTextField"}

result = iOSElement.Find(selector)

If result["code"] = 0 Then

result = iOSElement.SetText(result["data"], "通用")

If result["code"] = 0 Then

TracePrint "输入成功"

Else

TracePrint result["msg"]

End If

Else

TracePrint result["msg"]

End If

函数名称

iOSElement.Click 点击指定的元素节点

功能

点击指定的元素节点,支持完整目标元素节点或者元素查找条件,如查找到多个元素则只操作第一个元素

语法

result = iOSElement.Click(element)

代码范例

Dim result, selector

RunApp "com.apple.Preferences"

Delay 1000

selector = {"text": "通用"}

result = iOSElement.Find(selector)

If result["code"] = 0 Then

result = iOSElement.Click(result["data"])

If result["code"] = 0 Then

TracePrint "点击成功"

Else

TracePrint result["msg"]

End If

Else

TracePrint result["msg"]

End If

函数名称

iOSElement.ScrollToOffset 将可滚动视图元素滚动到指定的方位

功能

将可滚动视图元素滚动到指定的方位

语法

result = iOSElement.ScrollToOffset(selector,x,y,animated)

代码范例

Dim result, selector

RunApp "com.apple.Preferences"

Delay 1000

selector = {"id": "UITableView"}

result = iOSElement.ScrollToOffset(selector, 0, 1000)

If result["code"] = 0 Then

TracePrint "滚动成功"

Else

TracePrint result["msg"]

End If

相关推荐
唐诺1 小时前
iOS UI 开发完全指南:UIKit 与 SwiftUI
ui·ios·swiftui
MonkeyKing3 小时前
iOS 循环引用深度解析:delegate/block/NSTimer/嵌套闭包
ios
泉木3 小时前
KVO 详解 —— iOS/ObjC 完整学习指南
ios·objective-c
MonkeyKing3 小时前
iOS AutoreleasePool 深度解析:原理、Page结构与释放时机
ios
报错小能手3 小时前
Swift经典面试题汇总
开发语言·ios·swift
迷途酱3 小时前
Swift 真的被搞得乱七八糟了吗?写了几年之后说点实话
ios·swift
唐诺4 小时前
iOS UI 框架详解
ui·ios
Zender Han4 小时前
Flutter 轻量存储方案介绍、区别、对比和使用场景
android·flutter·ios
2501_916007474 小时前
XCode 15 IDE新特性:苹果集成开发环境全面升级,提升编程效率与体验
ide·vscode·macos·ios·个人开发·xcode·敏捷流程
MonkeyKing71555 小时前
iOS Tagged Pointer 原理、判断方式、适用场景与避坑指南
ios·objective-c