2017-01-30 9 views
0

У меня есть «UICollectionView», в котором я могу прокручивать вниз, но не могу прокручивать вверх. Я не уверен, если я пропускаю что-то очень простое - Вот код ниже:Не удается прокрутить страницу с помощью EarlGrey

(форматирование было странно, так вот скриншот)

enter image description here

Первый блок выполняет отлично, но приложение не будет прокручиваться снова, и кнопка, которую я должен нажать, остается за кадром.

Редактировать: Попробовал добавить grey_sufficientlyVisible в соответствии с @gran_profaci и все еще не смог найти элемент.

no UI element matching (matcherForSufficientlyVisible(>=0.750000) && (respondsToSelector(accessibilityIdentifier) && accessibilityID("bar"))) was found. Но он все еще существует в иерархической иерархии.

enter image description here

+0

Возможно, вы указали ошибку, которую видите? Я подозреваю, что проблема в том, что элемент присутствует в иерархии, но пока не отображается. –

ответ

1

Вот простой тест, который вы могли бы сделать с EarlGrey - создать таблицу View или использовать FunctionalTestApp EarlGrey и попытаться прокрутки к одному краю содержимого, а затем обратно. В середине одного из свитков, приостановить проверку и добавьте следующие строки в отладочной консоли:

po [GREYElementHierarchy hierarchyStringForAllUIWindows] 

Что вы могли бы заметить, что в иерархии, может быть несколько клеток, которые не видны на экран. Когда вы использовали действие поиска прокрутки, чтобы найти grey_accessibilityID(@"bar"), вы ищете, чтобы убедиться, что ячейка присутствует в иерархии, а не если вы можете видеть/взаимодействовать с ней.

Пожалуйста, добавьте grey_sufficientlyVisible() в grey_accessibilityID (@ "...") и посмотрите, что вы получаете.

+0

Большое спасибо за ответ. Я все еще получаю эту ошибку после добавления 'grey_interactable()': 'Исключение: NoMatchingElementException Причина: Утверждение 'assertWithMatcher: взаимодействующее' не выполнялось, потому что ни один элемент интерфейса пользователя ((отвечаетSoSelector (accessibilityIdentifier) ​​&& accessibilityID (" bar ")) && в интерактивном режиме). ' В иерархии я вижу, что кнопка существует. Я думаю, что это может быть в границах экрана, но есть другой взгляд, скрывающий его, поэтому я пытаюсь просмотреть его. Есть идеи? – ArielSD

+0

Почему вы добавили grey_interactable()? Это только гарантирует, что присутствующий элемент имеет свою точку активации в рамке окна, но ничего не видно. Не могли бы вы добавить grey_sufficientlyVisible()? –

+1

Это круто, я этого не знал! Я включу это в редактирование, поэтому я не буду мутить комментарии. – ArielSD