Javascript 用名称标识UIAutomation中的单元格

Javascript 用名称标识UIAutomation中的单元格,javascript,ios-ui-automation,Javascript,Ios Ui Automation,我正在尝试如何使用UIAutomation框架使用名称在表视图中标识单元格。这是一个来自仪器编辑器视图的屏幕截图 我尝试了以下方法,但还没有成功。正确或好的方法是什么。通常,withName与任何UIAEElement一起工作吗 main window().带名称(“上午11:00”) target.frontMostApp().mainWindow().TableView()[0]。单元格().TableView()[0]。单元格()[“上午11:00”] 请注意,使用硬编码位置识别元件是可

我正在尝试如何使用UIAutomation框架使用名称在表视图中标识单元格。这是一个来自仪器编辑器视图的屏幕截图

我尝试了以下方法,但还没有成功。正确或好的方法是什么。通常,withName与任何UIAEElement一起工作吗

  • main window().带名称(“上午11:00”)
  • target.frontMostApp().mainWindow().TableView()[0]。单元格().TableView()[0]。单元格()[“上午11:00”]
  • 请注意,使用硬编码位置识别元件是可行的。如下

    target.frontMostApp().mainWindow().TableView()[0]。单元格().TableView()[0]。单元格()[2]


    withName在apple文档中提到-

    为了澄清,在
    UIAEElement
    上的
    withName()
    方法是一个测试,以查看元素是否具有该名称。如果是,则返回元素;如果不是,则返回
    UIAElementNil

    您考虑的是
    UIAElementArray
    上的
    withName()
    ,它只将元素数组的结果过滤为具有给定名称的结果

    您在窗口上调用了
    withName()
    ,但该操作无效。这些查询方法不会深入遍历元素树来查找内容。您需要像在第2行中一样进行遍历

    不过,我不太清楚它为什么坏了。看起来您正在正确地穿越。我的直觉是,这个名字可能隐藏了额外的空白字符或unicode,而简单的字符串“11:00AM”不匹配

    我有几点建议来追踪这件事。为内部表视图创建一个中间变量。输入这些建议对我来说比较容易

    var innerTableView = target.frontMostApp().mainWindow().tableViews()[0].cells().tableViews()[0];
    
    现在试试这两个建议,让我知道它是怎么说的:

  • 记录第二个单元格名称的全文以查看其内容:
    UIALogger.logMessage(“名称为“”+”innerTableView.cells()[2].name()+”)
  • 如果这不能帮助您找到答案,请尝试与谓词匹配:
    innerTableView.cells().firstWithPredicate(“name包含'11:00am')).logElement()

  • 当您运行这些建议中的任何一个时会发生什么?

    根据您的第一个建议并添加for循环,我能够找出问题所在。我打电话的时间不对。非常感谢。