Тестирование iOS-приложения на симуляторе с помощью Appium - элемент не найден - PullRequest
0 голосов
/ 24 августа 2018

Я использую клиент Appium для записи и создания сценария тестирования для моего приложения для iOS.В Инспекторе приложений я могу нажать на кнопку входа и сгенерировать скрипт (на python), как показано ниже:

els1 = driver.find_elements_by_accessibility_id("login")
els1[0].click()

Я могу успешно войти в свое приложение, нажав кнопку в Инспекторе приложений, но я получилошибка при запуске сценария на терминале Mac:

els3 [0] .click ()

IndexError: список индексов выходит за пределы диапазона

Я пробовал разные способы доступа к элементу кнопки, используя accessibility id, name и class name, но ни один из вышеперечисленных способов не работал.

Что я пропустил?Это ошибка программного обеспечения Appium?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

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

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

Таким образом, между каждым взаимодействием просто подождите секунду:

el1 = driver.find_element_by_accessibility_id("login")
el1.click()
// wait for the view to get updated
driver.implicitly_wait(1)

els2 = driver.find_elements_by_name("Edit")
els2[0].click()

И скрипт будет работать, как и ожидалось.

0 голосов
/ 24 августа 2018

Эта ошибка «IndexError: список индексов выходит за пределы диапазона» появляется, если мы пытаемся получить доступ к списку по индексу, которого нет в диапазоне списка

например,

thislist = ["apple", "banana", "cherry"] // here list index range is 0-2
thislist[1] = "blackcurrant" // this works fine as value of index is in range 0-2

Но если япопробуйте ниже

// this is run time error i.e. "IndexError: list index out of range"
//  as value of index is out of range 0-2
    thislist[3] = "blackcurrant" 

Примечание: индекс индекса начинается с 0

Рассмотрим случай, когда метод find_elements_by_accessibility_id ("login") не возвращает ни одного элемента по любой причине

els1 = driver.find_elements_by_accessibility_id("login");

И я пытаюсь получить доступ к списку els1 с индексом 0, который пуст, поэтому я получаю сообщение об ошибке «IndexError: список индексов выходит за пределы диапазона»

Теперь перед обращением к списку мы проверим, если список вне пустой

els1 = driver.find_elements_by_accessibility_id("login")
if els1:
   els1[0].click()
else :
   print "Element not found and els1 array is empty"        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...