scrollToVisible не работает во время прокрутки таблицы в iOS UIAutomation - PullRequest
1 голос
/ 14 марта 2012

Я пишу скрипты для UIAutomation в iOS. Я записываю UITableView с прокруткой по приборам, но когда я запускаю тот же записанный скрипт, он не прокручивает view.

Вызывает "scrollToVisible" вызов для прокрутки. Например:

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

Хотя, он не прокручивает его и, следовательно, выдает ошибку при нажатии на этот элемент. Почему это происходит?

Ответы [ 2 ]

0 голосов
/ 07 марта 2013

Я знаю, что это спросили некоторое время назад, но код выше не будет работать.Это потому, что isVisible () возвращает число, а не логическое значение.Чтобы увидеть, видна ли ячейка на странице, вам нужно проверить и узнать, возвращает ли isVisible () 1:

if (cellToScroll.isVisible() == 1 )
{
    cellToScroll.scrollToVisible();
}
0 голосов
/ 11 июля 2012

Попробуйте проверить, является ли элемент, которым вы пытаетесь манипулировать, 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 или что-то в этом роде.

...