Работа с большими iOS TabelViews в Robot Framework с AppiumLibrary - PullRequest
0 голосов
/ 22 апреля 2019

В приложении много приложений TabelView (ListViews), которые я автоматизирую с различными размерами. Почти во всех списках ячейки имеют общие атрибуты, по которым я могу найти их все, используя Get Webelements и взаимодействуя с элементом по определенному индексу. Поэтому у меня есть общее ключевое слово, которое отлично работает с небольшими списками (около 20 наименований):

Find element with locator in position x
    [Arguments]  ${position}  ${locator}
    wait until page contains element  ${locator}
    @{elements} =  get webelements  ${locator}
    [Return]  @{elements}[${position}]

Ситуация становится действительно запутанной, когда я пытаюсь использовать эту стратегию с TabelViews, которые имеют много элементов, особенно если данные в TabelView загружаются с отложенной загрузкой (например, 20 для каждой страницы).

Самым проволочным является то, что когда я запускаю это ключевое слово, чтобы найти ячейку в TabelView, в которую загружено только 20 элементов (но если вы прокрутите до конца страницы, то будет загружено больше), иногда приложение находит 80 элементам, иногда он находит 40, иногда тайм-аут, и когда я пытаюсь щелкнуть по элементу с индексом 0, это не удается сделать, так как размер этого элемента равен 0 для Appium.

Кажется, что какое-то волшебное приложение попадает в конец списка внизу, и начинается загрузка следующей порции данных, поэтому иногда я получаю 80 элементов, а иногда, если дела идут очень медленно, у меня получается тайм-аут. И кажется, что элемент в индексе 0 становится не тем, что находится на экране в этот момент, а некоторым элементом из элементов, которые еще не тонут на экране.

Как только я отключаю ленивую загрузку из своего кода приложения для iOS и отображается только 1-я страница элементов (20 элементов), и appium не может получить следующую порцию из 20 элементов, все начинает работать, как и ожидалось .

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

Если у всех раньше была такая проблема, пожалуйста, помогите мне. Если вам нужна любая другая информация, например, Журнал Appium, точные способы, как я пытаюсь решить эту проблему, пожалуйста, дайте мне знать.

Версия Appium v1.12.1 Версия фреймворка робота 3.1.1 с Python 2.7 Версия библиотеки Appium - 1.5.0.2 Версия iOS 11.4.1 и 12.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...