我正在尝试如何使用UIAutomation框架使用名称来识别表视图中的单元格。这是乐器编辑器视图的截图。
我尝试了以下方法但尚未成功。什么是正确或好的方法。通常,withName可以与任何UIAElement一起使用吗?
请注意,识别具有硬编码位置的元素有效。如下所示
target.frontMostApp()。主窗口()。tableViews()[0] .cells()。tableViews()[0] .cells()[2]
苹果文档中提到了答案 0 :(得分:3)
为了澄清,withName()
上的UIAElement
方法是测试元素是否具有该名称的测试。如果是,则返回元素,否则返回UIAElementNil
。
您所考虑的是withName()
UIAElementArray
,它将元素数组的结果过滤为仅具有给定名称的结果。
您在窗口上调用withName()
,这将无效。这些查询方法不会对元素树进行深度遍历来查找内容。你需要像在第2行那样进行自己的遍历。
我有几个建议来追踪这一点。为内部表视图创建一个中间变量。我可以更轻松地输入这些建议。
var innerTableView = target.frontMostApp().mainWindow().tableViews()[0].cells().tableViews()[0];
现在尝试这两个建议,让我知道它的内容:
UIALogger.logMessage("Name is '" + innerTableView.cells()[2].name() + "'");
innerTableView.cells().firstWithPredicate("name contains '11:00 am'").logElement();
当您运行其中任何一项建议时会发生什么?