Python Selenium: исключение обработки Webdriver - PullRequest
1 голос
/ 08 января 2020

Я использую Beautfilsoup для извлечения информации о приложении из Google Play Store. Я извлекаю название приложения, общий рейтинг, никто не оценил приложение и отзывы, оставленные рецензентами. Однако, когда я запускаю программу, она выдает исключение веб-драйвера. Например: когда программа пытается получить информацию из этого приложения ('https://play.google.com/store/apps/details?id=com.tudasoft.android.BeMakeup&hl=en&showAllReviews=true'), она выдает ошибку. Вот мой код:

import bs4 as bs
from selenium import webdriver 

driver = webdriver.Chrome(path)
driver.get(url)
soup = bs.BeautifulSoup(driver.page_source, 'html.parser')

Я получил ошибку в третьей строке, и начало ошибки:

---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
<ipython-input-270-4e8a1ef443f2> in <module>()
----> 1 soup = bs.BeautifulSoup(driver.page_source, 'html.parser')

, и конец ошибки:

(Session info: chrome=79.0.3945.88)
  (Driver info: chromedriver=2.41.578706 (5f725d1b4f0a4acbf5259df887244095596231db),platform=Mac OS X 10.15.2 x86_64) 

Я пытался использовать обработку исключений, но не решил проблему. Может ли кто-нибудь подсказать мне, как преодолеть такую ​​ситуацию?

1 Ответ

2 голосов
/ 08 января 2020

Это сообщение об ошибке ...

WebDriverException                        Traceback (most recent call last)
.
(Session info: chrome=79.0.3945.88)
  (Driver info: chromedriver=2.41.578706 (5f725d1b4f0a4acbf5259df887244095596231db),platform=Mac OS X 10.15.2 x86_64) 

... означает, что ChromeDriver не смог связаться с Контекстом просмотра , то есть Chrome Браузер сеанс.

Ваша главная проблема - несовместимость между используемой вами версией двоичных файлов:

  • Вы используете chromedriver = 41,0
  • Примечания к выпуску chromedriver = 2,41 четко упоминает следующее:

Поддержка Chrome v67-69

  • Вы используете хром = 79,0
  • Примечания к выпуску ChromeDriver v79.0 четко упоминает следующее:

Поддержка Chrome версия 79

Таким образом, существует явное несоответствие между ChromeDriver v2.41 и Chrome Browser v79.0


Solution

Убедитесь, что :

  • Селен * 10 65 * обновлен до текущих уровней Версия 3.141.59 .
  • ChromeDriver обновлен до текущего ChromeDriver v79.0.3945.36 уровень.
  • Chrome обновлено до текущего Chrome Версия 79.0 уровня. (в соответствии с примечаниями к выпуску ChromeDriver v79.0 )
  • Очистка вашего Рабочего пространства проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • ( только для WindowsOS ) Используйте CCleaner , чтобы стереть все рутинные операции ОС. до и после выполнения Test Suite .
  • ( только для LinuxOS ) Освободите и освободите неиспользуемую / кэшированную память в Ubuntu / Linux Mint до и после выполнения вашего Test Suite .
  • Если ваша базовая веб-клиент версия слишком старая, удалите ее и выпустили версию Веб-клиент .
  • Возьмите Перезагрузка системы .
  • Выполните @Test от имени не root пользователя.
  • Всегда вызывайте driver.quit() в методе tearDown(){} для закрытия и уничтожения WebDriver и Веб-клиента экземпляров изящно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...