我正在为iOS中的UIAutomation
编写脚本。我正在录制UITableView
滚动乐器,但是当我运行相同的录制脚本时,它不会滚动view
。
调用“scrollToVisible”调用滚动。例如:
target.frontMostApp().mainWindow().scrollViews()[0].tableViews()[0].cells()[3].scrollToVisible();
但是,它不会滚动它,因此在点击此元素时会出错。为什么会这样?
答案 0 :(得分:0)
在调用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>单元格。 View2有一些nonAccessible元素。 View2显示在view1上。在这种情况下,记录器将忽略View2并捕获view1元素。 在这种情况下,运行脚本将给出相同的错误。 checkIsValid()将返回true,isVisible()将返回false,并且在具有相同错误的cellToScroll.scrollToVisible()上脚本将失败;在这种情况下,您需要进行一些额外的验证,例如 - View2是可见的还是类似的。
答案 1 :(得分:-1)
我知道这是前一段时间被问过,但上面的代码不起作用。这是因为isVisible()返回一个数字而不是布尔值。要查看单元格是否在页面上可见,您必须检查并查看isVisible()是否返回1:
if (cellToScroll.isVisible() == 1 )
{
cellToScroll.scrollToVisible();
}