我在iOS中为UIAutomation编写脚本。我正在录制在乐器中滚动的UITableView,但是当我运行相同的录制脚本时,它不会滚动view

它调用“ scrollToVisible”调用进行滚动。例如:

target.frontMostApp().mainWindow().scrollViews()[0].tableViews()[0].cells()[3].scrollToVisible();

但是,它不会滚动它,因此在点击此元素时会出错。为什么会这样呢?

最佳答案

尝试在调用scrollToVisible()之前检查要尝试操作isValid或/和isVisible的元素

   var cellToScroll = target.frontMostApp().mainWindow().scrollViews()[0].tableViews()[0].cells()[3];

   if ( cellToScroll.checkIsValid() )
    {
        if (!cellToScroll.isVisible() )
        {
             cellToScroll.scrollToVisible();
        }
     // do other actions with object
    }
    else
    {
        UIALogger.logMessage("object is invalid");
    }


同样,有时记录器会捕获不可见的元素。例如,您有2个视图。 View1和View2。 View1具有scrollView> table> cells。 View2具有一些不可访问的元素。 View2显示在view1上方。在这种情况下,记录器将忽略View2并将捕获view1元素。
在这种情况下,运行脚本将给出相同的错误。 checkIsValid()将返回true,isVisible()将返回false,并且cellToScroll.scrollToVisible()上的脚本将失败,并显示相同的错误;在这种情况下,您将需要执行其他一些验证,例如-View2是否可见或类似的内容。

关于ios - 在iOS UIAutomation中滚动tableview时scrollToVisible不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9707795/

10-12 14:44