Попробуйте проверить, является ли элемент, которым вы пытаетесь манипулировать, isValid или / и isVisible перед вызовом scrollToVisible ()
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 имеет несколько недоступных элементов. View2 отображается поверх view1. В этом случае рекордер игнорирует View2 и захватывает элементы view1.
В этом случае запуск скрипта выдаст ту же ошибку. checkIsValid () вернет true, isVisible () вернет false и скрипт не будет работать на cellToScroll.scrollToVisible () с той же ошибкой; В этом случае вам нужно будет выполнить некоторые дополнительные проверки, например: виден ли View2 или что-то в этом роде.