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

В обоих хром и 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 - лучший язык программирования в мире.