我想访问标注视图并对UIAutomation
这些视图执行一些操作。我可以单击地图标记/注释,但无法访问标注视图。以下代码用于点击标记:
let marker = app.otherElements.matching(identifier: "mapMarker").element(boundby: 0)
marker.tap();
在此之后,我得到了受人尊敬的标记/注释的标注视图。我需要访问该标注。请就此向我提出建议。
我想访问标注视图并对UIAutomation
这些视图执行一些操作。我可以单击地图标记/注释,但无法访问标注视图。以下代码用于点击标记:
let marker = app.otherElements.matching(identifier: "mapMarker").element(boundby: 0)
marker.tap();
在此之后,我得到了受人尊敬的标记/注释的标注视图。我需要访问该标注。请就此向我提出建议。
您应该在标注结束后创建一个断点,然后键入po print(app.debugDescription)
(或简单地po app
在 XCode 11 中)lldb
以查看 UI 元素的整个层次结构。
找到所需的元素并在代码中进一步访问它。
此外,请考虑以更短的方式重写您的标记代码:
let marker = app.otherElements["mapMarker"].firstMatch
请注意firstMatch
在找到第一个元素后中止搜索元素。
Drop firstMatch
,如果要检查元素是否唯一
let marker = app.otherElements["mapMarker"]
与 Smart Monkey 所说的相同,但要根据 ablarg 的评论添加更多代码:
例如:“mapMarker”是元素的可访问性 ID
let mapMarker = app.maps.otherElements["mapMarker"].firstMatch
let mapMarkerExists = mapMarker.waitForExistence(timeout: 3)
if mapMarkerExists {
mapMarker.tap()
}
waitForExistence(timeout:)
返回一个布尔值,因此如果元素在超时到期之前出现(它找到了元素),则对元素执行操作(点击)。
确保元素已启用可访问性并设置了可访问性 ID。