如何在iOS自动化中访问UITableView中的单元格

时间:2013-07-12 08:05:30

标签: javascript iphone ios ipad ios-ui-automation

我需要帮助访问UITableView中的单元格(名称:设置)。我正在ipad v6.0.1上进行ios-UIAutomation。

我尝试了所有这些命令 -

  1. mainWindow.popover().tableViews()[0].cells()[4].tap();
  2. mainWindow.tableViews()[0].cells()["Settings"].tap();
  3. mainWindow.popover().tableViews()[0].cells()[4].elements()["Settings"];
  4. 但没有任何效果。

    logElementTree看起来像这样 -

    UIATarget  
       | UIAApplication
          | UIAWindow
             | UIAPopover
                | UIATableView : name:Empty list
                   | UIATableCell : name:Menu
                   | **UIATableCell : name:Settings**
    

    附上logTree的屏幕截图以供参考。

2 个答案:

答案 0 :(得分:1)

首先,我建议在表格视图中添加一个名称。使用数组偏移会使维护测试代码变得更加困难。为顶级项目定义变量是“标准”实践。

我相信这段代码会奏效。在仪器的JavaScript“框架”中工作是一种令人沮丧的练习。我发现命名中间对象是一个很好的起点。

var target = UIATarget.localTarget();
var app = target.frontMostApp();
var mainWindow = app.mainWindow();

var targetTableView = mainWindow.popover.tableViews()[0];   

targetTableView().cells()["Settings"].tap()

答案 1 :(得分:0)

变量targetTableView()不是方法,因此不需要括号:

targetTableView.cells()["Settings"].tap()

当我声明变量targetTableView时,我没有popover的方法,因此未分配此方法:

var targetTableView = mainWindow.tableViews()[0];