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

发布于:2025-05-14 ⋅ 阅读:(14) ⋅ 点赞:(0)

元素节点功能(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