Selenium … Программа работает отлично для Firefox, но не Chrome

Код ниже отлично работает с Firefox, но когда я устанавливаю браузер = webdriver.Chrome (), я получаю некоторые проблемы.

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"))) h3s = browser.find_elements_by_css_selector('h3.one') h3 = next(element for element in h3s if element.is_displayed()) result = h3.text 

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

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

РЕДАКТИРОВАТЬ
Проблема появляется снова на Firefox и хром. Я даже добавил плавное ожидание.

 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 

Я пришел к выводу, что селен определенно не идеален.

2 Solutions collect form web for “Selenium … Программа работает отлично для Firefox, но не Chrome”

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

Вам нужно, чтобы selenium знал, что вы хотите, чтобы он подождал, прежде чем искать элемент через implicitly_wait() :

 wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.results"))) # okay, selenium, slow down, please browser.implicitly_wait(3) h3s = browser.find_elements_by_css_selector('h3.one') 

(работал для меня)

Если это проблема ожидания, у меня был хороший опыт с уверенным ожиданием:

https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html

  • Python и как получить текст из объекта WebElement объекта Selenium?
  • Pelon selenium: подождите, пока элемент не будет доступен для клика - не работает
  • Ограничить использование памяти phantomjs с помощью selenium webdriver?
  • Использование Selenium с Python и PhantomJS для загрузки файла в файловую систему
  • Selenium: Почему мой метод get_cookies () вернул список в Python?
  • Как я могу сделать Selenium щелчком по переменному числу «следующих» кнопок?
  • python selenium 3.0 - Firefox 47.0.1, установленный по умолчанию, не определен. (geckodriver)
  • Python. Селен. Как подождать нового окна?
  •  
    Interesting Posts for Van-Lav

    Список файлов в папке как поток для немедленного начала процесса

    для извлечения определенных столбцов из файла csv и копирования его на другой с помощью python

    Должен ли я «Компилировать файлы .py в байтовый код после установки»?

    Скорость выполнения Python: ноутбук и рабочий стол

    Python 3 Ошибка памяти Zipfile. ожидаемый аргумент строки, полученный 'bytes'

    Как получить текущие пути импорта в Python?

    Python: os.path.isfile не будет распознавать файлы, начинающиеся с числа

    Как добавлять / вычитать время (часы, минуты и т. Д.) Из объектов Pandas DataFrame.Index whos имеют тип datetime.time?

    Сравнение двух массивов numpy друг с другом

    Увеличение яркости изображения без переполнения

    Очень медленный поиск регулярных выражений

    Реализация дерева в Python

    Как рекурсивно генерировать размер каталога в python, например du. делает?

    Python / Django: какую библиотеку authorize.net я должен использовать?

    Стиль кодирования (PEP8) – Уровень модуля "dunders"

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