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

В обоих хром и 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; 
  • Какова наилучшая практика для написания поддерживаемых веб-скребок?
  • веб-соскабливание новостей Google с помощью python
  • Нажмите кнопки с изображениями
  • Python Web Scraping - ошибка urlopen Имя или услуга неизвестны
  • Использование Python request.get для анализа html-кода, который не загружается сразу
  • Python + BeautifulSoup: очистка определенной таблицы с веб-страницы
  • Красивый суп не «получает» полную веб-страницу
  • кодек 'ascii' не может кодировать символ u '\ u2013' в позиции 19: порядковый номер не в диапазоне (128)
  • Как сформулировать выражение Xpath для получения атрибута из дочернего узла?
  • python нажатие кнопки на веб-странице
  • Извлечение изображения src на основе атрибута с помощью BeautifulSoup
  • Python - лучший язык программирования в мире.