selenium.common.exceptions.WebDriverException: сообщение: неизвестная ошибка: Chrome не удалось запустить: аварийный выход из Chromedriver 2.26 Selenium - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь установить chrome webdriver в ubuntu. Я уже сделал

pip install selenium

и могу

from selenium import webdriver

Чтобы установить chrome webdriver, я много чего пробовал. Например, мне надоел ответ от Can't use chrome driver for Selenium Здесь я попробовал

  1. Убедитесь, что вы установили последнюю версию chrome browser-> "chromium-browser -version"
  2. Если нет, установите последнюю версию chrome «sudo apt-get install chromium-browser»
  3. Получите соответствующую версию chrome драйвера от http://chromedriver.storage.googleapis.com/index.html
  4. Разархивируйте chromedriver.zip
  5. Переместите файл в каталог / usr / bin sudo mv chromedriver / usr / bin
  6. Goto / usr / bin, и вам нужно будет запустить что-то вроде "chmod a + x chromedriver", чтобы пометить его как исполняемый.
  7. наконец, вы можете выполнить код.

В соответствии с ним я мог сделать

from selenium import webdriver
driver = webdriver.Chrome()

Однако во второй строке я получаю сообщение об ошибке:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/../.local/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/home/../.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/../.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/../.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/../.local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.26.436382 (70eb799287ce4c2208441fc057053a5b07ceabac),platform=Linux 4.15.0-109-generic x86_64)

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

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

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.26.436382 (70eb799287ce4c2208441fc057053a5b07ceabac),platform=Linux 4.15.0-109-generic x86_64)

... означает, что ChromeDriver не смог инициировать / создать новый Контекст просмотра т.е. Chrome Браузер сеанс.

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

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

Поддерживает Chrome v53-55

  • Возможно, вы используете последнюю chrome = 83.0
  • Примечания к выпуску of ChromeDriver v83.0 четко упоминает следующее:

Поддерживает Chrome версия 83

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

Решение

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

  • JDK обновлен до текущих уровней JDK 8u251 .
  • Selenium обновлен до текущих уровней Версия 3.141.59 .
  • ChromeDriver обновлен до текущего ChromeDriver v83.0 уровня .
  • Chrome обновлено до текущего Chrome Версия 83.0 уровня. (в соответствии с примечаниями к выпуску ChromeDriver v83.0 )
  • Если ваша базовая версия веб-клиента слишком старая, удалите ее и установите последнюю версию GA и выпущенную версию Веб-клиент .
  • Очистите вашу рабочую область проекта с помощью IDE и Перестройте свой проект только с необходимыми зависимостями.
  • Если ваша базовая версия веб-клиента слишком старая, удалите ее и установите последнюю версию GA и выпущенную версию веб-клиента .
  • Выполните Перезагрузку системы .
  • Выполните @Test как не root пользователя.
  • Всегда вызывать driver.quit() в методе tearDown(){} для корректного закрытия и уничтожения экземпляров WebDriver и Web Client .
0 голосов
/ 11 июля 2020

Используйте webdriver-manager

webdriver-manager

Ниже 3 строки должны выполнить эту работу за вас:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install()) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...