Перейти к содержимому

Фотография

PyTest Page Object Model создание массива

pytest selenium page object model pom python pytest pytest массив

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 maverick12345

maverick12345

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Неважно Ф.О

Отправлено 21 июля 2022 - 14:57

Создаю функцию массива

Хочу вывести массив из N-элементов в цикле по переменной WS_LIST

 

def do_ws_desc(self):
self.do_click(self.WS_DESC)
array = []
   for i in self.get_list(self.WS_LIST):
   array.append(i.get_attribute('innerText'))

print(array)

 

 

 

self.get_list(self.WS_LIST) наследует от basePage

 

как:

def get_list(self, by_locator):
self.wait.until(EC.presence_of_all_elements_located(by_locator)) 

И ожидает получить все элементы по его XPATH

 

сам локатор:

WS_LIST = (By.XPATH, "//td[@data-test='table_cell_ws1']/div/span") - это список с текстом

У меня на странице 7 элементов с данным XPATH

 

 

В ошибке получаю

TypeError: 'NoneType' object is not iterable 
Что элемент не взаимодействуемый
 
Прошу знатоков помочь

  • 0

#2 peskar

peskar

    Новый участник

  • Members
  • Pip
  • 5 сообщений

Отправлено 16 августа 2022 - 03:22

 

TypeError: 'NoneType' object is not iterable 

Что элемент не взаимодействуемый

Читайте внимательнее ошибки: меньше будет проблем. А то у нас джун видит ошибку ElementClickInterceptedException, а читает её как NoSuchElementException, в итоге ищет проблему не в том месте.

 

"None-объект не итерируемый" - что-то пытались проитерировать, но это что-то оказалось None. Итерируют в цикле. Цикл тут приведен один и это:

for i in self.get_list(self.WS_LIST):

То есть get_list выдал None вместо списка элементов: нужно смотреть внутрь метода, нужно проверить правильность локатора, нужно проверить, что метод отрабатывает после того, как элементы отобразились на странице. 

Однако, по приведенному тексту ошибки нельзя сказать точно, что проблема именно в этом цикле: нужен полный стектрейс


  • 0

#3 maverick12345

maverick12345

    Новый участник

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Неважно Ф.О

Отправлено 16 августа 2022 - 12:52

 

 

TypeError: 'NoneType' object is not iterable 

Что элемент не взаимодействуемый

Читайте внимательнее ошибки: меньше будет проблем. А то у нас джун видит ошибку ElementClickInterceptedException, а читает её как NoSuchElementException, в итоге ищет проблему не в том месте.

 

"None-объект не итерируемый" - что-то пытались проитерировать, но это что-то оказалось None. Итерируют в цикле. Цикл тут приведен один и это:

for i in self.get_list(self.WS_LIST):

То есть get_list выдал None вместо списка элементов: нужно смотреть внутрь метода, нужно проверить правильность локатора, нужно проверить, что метод отрабатывает после того, как элементы отобразились на странице. 

Однако, по приведенному тексту ошибки нельзя сказать точно, что проблема именно в этом цикле: нужен полный стектрейс

 

 

Спасибо, уже неактуально. Локатор верный, поменял синтаксис:

# WS1 Desc
self.mainPage.do_click(MainPage.WS_DESC)
ws_list = self.mainPage.get_list_elements(MainPage.WS_LIST)

WS_DESC = []

for page in ws_list:

try:
WS_DESC.append(int(page.text.strip().replace(' ', '')))
except:
continue

print("List of WS after DESC:", WS_DESC)

for i in range(len(WS_DESC) - 1):
assert WS_DESC[i] >= WS_DESC[i + 1], f"WS1 DESC not working!"

 

Так все работает


  • 0



Темы с аналогичным тегами pytest, selenium, page object model, pom, python pytest, pytest массив

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных