XCTest - как справиться с прокруткой списка

Я использую xcode 8.3.3, swift и XCTest. Мне интересно, каков наилучший подход к прокрутке, когда вы планируете запускать тесты на нескольких симуляторах и отображать список. Поскольку размер экрана может изменяться в зависимости от используемого имитатора, элемент, который вы хотите выбрать для прокрутки вверх, может отображаться или не отображаться.

Если у меня есть список с x # элементами, как мне лучше всего выбрать, какой элемент использовать для прокрутки списка вверх, чтобы следующий набор элементов отображался на экране, чтобы тесты выполнялись на нескольких симуляторах экрана разных размеров?

Когда мы делаем "po XCUIApplication()", мы видим все элементы в списке, поэтому, чтобы узнать, какой из них является последним, отображаемым на экране, нам нужно будет просмотреть каждый элемент и выполнить проверку, как isDisplayed или что-то в этом роде. найти последний отображаемый элемент... но я надеялся, что есть лучший подход?

2 ответа

Решение

Если элемент, который вы хотите использовать, отображается, когда вы делаете po XCUIApplication() тогда вы должны быть в состоянии tap() это без необходимости прокручивать его в поле зрения. Фреймворк будет обрабатывать прокрутку автоматически, если сможет найти элемент.

Вот статья, которую я написал, обсуждая, как использовать SBTUITestTunnel для прокрутки:

https://rlukasik.medium.com/using-sbtuitesttunnel-for-scrolling-in-xcuitests-2e166440ca73

Другие вопросы по тегам