Ошибка индекса на Raspberry pi 3b , но не в pc Python

#python #raspberry-pi3 #index-error

#python #raspberry-pi3 #ошибка индекса

Вопрос:

Я пишу программу, которая отправляет мне определенный номер с веб-сайта на мой телефон. Когда я запускаю файл Python на своем ноутбуке, он работает без сбоев, но когда я запускаю его на своем Raspberry Pi, я получаю эту ошибку

 Pillen_ant = self.driver.find_elements_by_class_name("bg_periode.vandaag")[1].text
IndexError: list index out of range
  

Но это не так, я использую ту же строку кода на своем ноутбуке, и тогда все работает нормально.

Комментарии:

1. Просто взглянув на фрагмент кода, я чувствую, что вы пытаетесь выполнить веб-очистку. Итак, когда вы используете свой Raspberry Pi, веб-сайт, похоже, не создает элемент с именем класса bg_periode.vandaag , отсюда и ошибка индекса. На вашем месте я бы сначала выяснил, почему отображается этот элемент на веб-сайте.

Ответ №1:

Вызов

 self.driver.find_elements_by_class_name("bg_periode.vandaag")
  

не возвращает список с двумя элементами при запуске его на Pi. Когда вы пытаетесь выполнить индексацию в нем по элементу [1] , происходит сбой, потому что в списке не так много элементов. Попробуйте добавить точку останова в свой код прямо перед этой строкой, а затем проверьте ее вручную, чтобы увидеть, что возвращается.

Комментарии:

1. Я только что попробовал это, но это не помогает. Когда я добавляю точку останова и ищу элемент, я должен ввести «bg_periode vandaag» В моем коде, я сказал это как «bg_periode.vandaag», иначе элемент вообще не будет найден. Но это правильное имя для поиска элемента. Когда я ищу имя с помощью inspect, я нахожу 2 элемента.

2. для уточнения добавьте точку останова, затем используйте команды «далее» или «шаг» для продвижения программы. Кроме того, сначала удалите [1] и все, что после него. Вы можете сделать это отдельно, если хотите, но вам нужно получить результат find_elements_by_class_name("bg_periode.vandaag") , который сам по себе хранится в переменной, чтобы вы могли просмотреть его, прежде чем пытаться проиндексировать в нем.