RemoteDisconnected («Закрытое соединение с удаленным концом без» http.client.RemoteDisconnected: Закрытое соединение с удаленным концом без ответа - PullRequest
0 голосов
/ 19 ноября 2018

Поскольку Google запрещает доступ к API-ключу Google MyBusiness всем, кроме существующих фирм, я попытался автоматизировать процесс изменения информации о моей компании с помощью веб-драйвера selenium.

Что работает?

Вход в Google Mybusiness путем автоматизации формы входа.

Что не работает?

После входа в систему мне нужно открыть небольшой модал редактирования рабочего времени. Я попытался автоматизировать нажатие на кнопку редактирования, но, к сожалению, я получаю эту ошибку: http.client.RemoteDisconnected: Remote end closed connection without response

Мой код:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
driver = webdriver.Chrome(chrome_options=options)

def LoginGMB(driver):    
    (myemail, mypassword) = AuthenticationDetails()   
    driver.find_element_by_id('identifierId').send_keys(myemail)
    driver.find_element_by_id('identifierNext').click()
    time.sleep(2)
    driver.find_element_by_name('password').send_keys(mypassword)
    driver.find_element_by_id('passwordNext').click()
    time.sleep(2)

def OpenGMB(url):    
    driver.get(url)
    print(driver.current_url)
    pattern = re.compile(".*accounts.google.com/signin.*")
    match = re.search(pattern, cururl)
    if match:
        LoginGMB(driver)
    print("Ok we're back")
    driver.find_element_by_id('ow50').click()

OpenGMB('https://business.google.com/edit/l/001?hl=en')

StackTrace:

https://accounts.google.com/signin/v2/identifier?service=lbc&passive=1209600&continue
We need to login as we are presented login page
Ok we're back
Traceback (most recent call last):
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
File "<string>", line 2, in raise_from
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse
    response.begin()
File "/usr/lib/python3.6/http/client.py", line 297, in begin
    version, status, reason = self._read_status()
File "/usr/lib/python3.6/http/client.py", line 266, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "gmb.py", line 77, in <module>
    OpenGMB(url)
File "gmb.py", line 62, in OpenGMB
    el = driver.find_element_by_id('ow50')
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
    'value': value})['value']
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 319, in execute
    response = self.command_executor.execute(driver_command, params)
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 376, in execute
    return self._request(command_info[0], url, body=data)
File "/home/joel/.local/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 399, in _request
    resp = self._conn.request(method, url, body=body, headers=headers)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/request.py", line 72, in request
    **urlopen_kw)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/request.py", line 150, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/poolmanager.py", line 323, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/util/retry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/packages/six.py", line 685, in reraise
    raise value.with_traceback(tb)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
File "<string>", line 2, in raise_from
File "/home/joel/.local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse
    response.begin()
File "/usr/lib/python3.6/http/client.py", line 297, in begin
    version, status, reason = self._read_status()
File "/usr/lib/python3.6/http/client.py", line 266, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

1 Ответ

0 голосов
/ 20 ноября 2018

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

    RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

и

    RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

... означают, что Удаленное соединение было отключено из-за ProtocolError.

Согласно urllib3.exceptions.ProtocolError: («Соединение прервано.», Ошибка (10054, «Существующее соединение было принудительно закрыто удаленным хостом»)) Этопроблема довольно очевидна, когда несовместимость между версией двоичных файлов, которые вы используете.

Когда вы используете ChromeDriver и Chrome Browser вы должны убедиться, что двоичные файлы совместимы, как указано ниже:

  • ChromeDriver v2.46: поддерживает Chrome v71-73
  • ChromeDriver v2.45: поддерживает Chrome v70-72
  • ChromeDriver v2.44: поддерживает Chrome v69-71 (так же, как ChromeDriver 2.43, но с дополнительными исправлениями ошибок)
  • ChromeDriver v2.43: поддерживает Chrome v69-71
  • ChromeDriver v2.42: поддерживает Chrome v68-70
  • ChromeDriver v2.41: Supports Chrome v67-69
  • ChromeDriver v2.40: поддерживает Chrome v66-68
  • ChromeDriver v2.39: поддерживает Chrome v66-68
  • ChromeDriver v2.38: поддерживает Chromev65-67
  • ChromeDriver v2.37: поддерживает Chrome v64-66
  • ChromeDriver v2.36: поддерживает Chrome v63-65
  • ChromeDriver v2.35: поддерживает Chrome v62-64
  • ChromeDriver v2.34: поддерживает Chrome v61-63
  • ChromeDriver v2.33: поддерживает Chrome v60-62
  • ChromeDriver v2.32: поддерживает Chrome v59-61
  • ChromeDriver v2.31: поддерживает Chrome v58-60
  • ChromeDriver v2.30: поддерживает Chrome v58-60
  • ChromeDriver v2.29: поддерживает Chrome v56-58
  • ChromeDriver v2.28: поддерживает Chrome v55-57
  • ChromeDriver v2.27: поддерживает Chrome v54-56

Примечание : AНесколько месяцев назад Chromium Team сделали предварительное объявление , что модель управления версиями ChromeDriver будет меняться.Сейчас мы движемся вперед с планом.В частности, ChromeDriver 2.46 будет последним выпуском с основной версией 2. Будущие выпуски ChromeDriver будут иметь номер версии, аналогичный выпуску Chrome.Мы начнем с выпуска ChromeDriver 73 на следующей неделе, до выхода бета-версии Chrome 73.

Вот как будет работать новая модель выпуска:

  • ChromeDriver будетиспользовать ту же схему номеров версий, что и в Chrome.Подробнее см. https://www.chromium.org/developers/version-numbers.
  • Каждая версия ChromeDriver будет поддерживать Chrome с соответствующими номерами основных, вспомогательных и сборочных версий.Например, грядущий ChromeDriver 73.0.3683. * Будет поддерживать все версии Chrome, которые начинаются с 73.0.3683.
  • До того, как новая основная версия Chrome перейдет в бета-версию, будет выпущена соответствующая версия ChromeDriver.Например, на следующей неделе будет выпущена новая версия ChromeDriver, соответствующая бета-версии Chrome m73.
  • После первоначального выпуска новой основной версии мы будем выпускать исправления по мере необходимости.Эти исправления могут совпадать или не совпадать с обновлениями Chrome.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...