Selenium & Heroku: urllib3.exceptions.ProtocolError: («Соединение прервано.», ConnectionResetError (104, «Сброс соединения по одноранговому узлу»)) - PullRequest
0 голосов
/ 28 ноября 2018

Настройка:

  • селен : 3.141.0
  • питон : 3.6.7
  • heroku-stack : heroku-18
  • headless-chrome : v71.0.3578.80 buildpack установлен
  • chromedriver : v2.44.609551 buildpack установлен

Я получаю эту ошибку при использовании селена в heroku:

urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

Я погуглил, но мне не повезло.Ошибка происходит в последней строке этого кода.


Код

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

UA = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36' \
     '(KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
DRIVER_PATH = '/app/.chromedriver/bin/chromedriver'

chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = '/app/.apt/usr/bin/google-chrome'
chrome_options.add_argument(f'--user-agent={UA}')
chrome_options.add_argument(f'--proxy-server=http://my_private_proxy.com:my_port')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')

chrome = webdriver.Chrome(executable_path=DRIVER_PATH, options=options)

1 Ответ

0 голосов
/ 11 декабря 2018

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

urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

... означает, что режим ChromeDriver в Без головы не смог инициировать / порождать новый WebBrowser т.е. Браузер Chrome * Сессия 1011 *.

Некоторая информация о версиях используемых вами двоичных файлов помогла бы нам лучше проанализировать ошибку.Однако эту проблему urllib3 можно устранить по нескольким причинам, указанным ниже:

Этот флаг больше не требуется в Linux или macOS.Это станет ненужным в Windows, как только SwiftShader не сможет выполнить утверждение в Windows в автономном режиме будет исправлено.

Solution

  • Обновление ChromeDriver до текущей ChromeDriver v2.44 уровень.
  • Сохранить Chrome версия между Chrome v69-71 уровней.( в соответствии с примечаниями к выпуску ChromeDriver v2.44 )
  • Очистить ваше Рабочее пространство проекта через IDE и Перестройте ваш проект только с необходимыми зависимостями.
  • Если ваша базовая версия Web Client устарела, удалите ее и установите последнюю версию GA и выпущенную версию WebКлиент .
  • Возьмите Перезагрузка системы .
  • Выполните @Test.
...