Проблемы с извлечением селена: ожидания / не обнаружение элементов

В обоих хром и firefox все в порядке, пока мне не нужно извлечь текст. Я получаю эту ошибку:

h3 = next(element for element in h3s if element.is_displayed()) StopIteration 

Я даже добавил плавное ожидание.

 browser = webdriver.Firefox() browser.get('https://www.voilanorbert.com/') inputElement = browser.find_element_by_id("form-search-name") inputElement.send_keys(leadslist[i][0]) inputElement = browser.find_element_by_id("form-search-domain") inputElement.send_keys(leadslist[i][1]) searchbutton = browser.find_element_by_name("search") searchbutton.click() wait = WebDriverWait(browser, 20) wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.results"))) wait2 = WebDriverWait(browser, 3000, poll_frequency=100, ignored_exceptions=[ElementNotVisibleException]) wait2.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "h3.one"))) h3s = browser.find_elements_by_css_selector('h3.one') h3 = next(element for element in h3s if element.is_displayed()) result = h3.text 

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

Это изображение после: введите описание изображения здесь

Мне нужно извлечь то, что находится в классе «text-center display» класса «result».

введите описание изображения здесь

One Solution collect form web for “Проблемы с извлечением селена: ожидания / не обнаружение элементов”

Ответ довольно прост, вам просто нужен другой селектор, ожидающий результата поиска. Подход ниже (C #) работает отлично, это уменьшит ваш код несколькими строками.

Один «результат DIV» становится видимым при выполнении поиска. Это единственный элемент с классом «text-center display», так что это все ваши потребности выбора. Как только появится такая DIV, вы знаете, где точно определить элемент H3 (это ребенок из DIV). Поэтому просто подождите, пока элемент ниже станет видимым после нажатия кнопки поиска:

  IWebElement headerResult = w.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("div[class=\"text-center displayed\"] h3"))); string result = headerResult.Text; 
  • Нажмите кнопку на веб-сайте, затем очистите веб-страницу
  • Данные веб-соскабливания с интерактивной диаграммы
  • очистить данные с веб-сайта, которые перешли на следующую страницу при прокрутке вниз с помощью Python и BeautifulSoup
  • соскабливание ответа от выбранного варианта в выпадающем списке
  • Python: csv.writer, записывающий каждый символ слова в отдельном столбце / ячейке
  • Как удалить строку в цикле с помощью Python?
  • Как получить перенаправленный JS-файл, связанный с веб-страницей
  • кодек 'ascii' не может кодировать символ u '\ u2013' в позиции 19: порядковый номер не в диапазоне (128)
  •  
    Interesting Posts for Van-Lav

    разделите строку на 2 на основании последнего вхождения разделителя

    Более эффективно рисовать полигоны с помощью matplotlib

    Python Selenium Отправить ключи Предоставление предупреждения о размере

    Как использовать пользовательскую маркерную модель в Django Rest Framework

    Python: подсчет повторяющихся значений словаря

    Как читать две строки в данных из одного столбца, чтобы создать комбинацию значений из этого столбца?

    Найти первый элемент numpy ndarray неизвестной формы

    Как преобразовать шестнадцатеричную строку в шестнадцатеричный номер?

    Проблема развертывания программы Python (в комплекте с py2exe)

    Как сделать Python для того, чтобы все одинаковые строки использовали одну и ту же память?

    Project Euler # 3 с python – САМЫЙ ЭФФЕКТИВНЫЙ МЕТОД

    Диэдра / угол кручения из четырех точек в декартовых координатах в Python

    Как получить URL-адрес ImageField в шаблоне?

    Интерполяция строк python

    PIL (изображение) ValueError: не допустимое число таблиц квантования. Должно быть от 1 до 4

    Python - лучший язык программирования в мире.