RemoteDisconnected (“Conexión final cerrada remota sin” http.client.RemoteDisconnected: Conexión cerrada final remota sin respuesta

Dado que Google niega el acceso a la clave API de Google MyBusiness a todas las empresas menos establecidas, intenté automatizar el proceso de cambio de la información de mi negocio mediante el uso de Selenium Webdriver.

¿Que funciona?

Inicie sesión en Google Mybusiness automatizando el formulario de inicio de sesión.

¿Qué no funciona?

Después de iniciar sesión, necesito abrir el pequeño modo de edición de horas de trabajo. http.client.RemoteDisconnected: Remote end closed connection without response automatizar un clic en el botón de edición, pero desafortunadamente recibo este error: http.client.RemoteDisconnected: Remote end closed connection without response

Mi código:

 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 "", 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  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 "", 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',)) 

Estos mensajes de error …

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

y

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

… implica que la conexión remota se desconectó debido a ProtocolError .

Según urllib3.exceptions.ProtocolError: (‘Connection aborted.’, Error (10054, ‘Una conexión existente fue cerrada por la fuerza por el host remoto’)) Este problema es bastante evidente cuando hay una incompatibilidad entre la versión de los binarios están usando.

Como está utilizando ChromeDriver y Chrome Browser , debe asegurarse de que los binarios sean compatibles según las siguientes entradas:

  • ChromeDriver v2.46: soporta Chrome v71-73
  • ChromeDriver v2.45: soporta Chrome v70-72
  • ChromeDriver v2.44: soporta Chrome v69-71 (igual que ChromeDriver 2.43, pero con correcciones de errores adicionales)
  • ChromeDriver v2.43: soporta Chrome v69-71
  • ChromeDriver v2.42: soporta Chrome v68-70
  • ChromeDriver v2.41: soporta Chrome v67-69
  • ChromeDriver v2.40: soporta Chrome v66-68
  • ChromeDriver v2.39: soporta Chrome v66-68
  • ChromeDriver v2.38: soporta Chrome v65-67
  • ChromeDriver v2.37: soporta Chrome v64-66
  • ChromeDriver v2.36: soporta Chrome v63-65
  • ChromeDriver v2.35: soporta Chrome v62-64
  • ChromeDriver v2.34: soporta Chrome v61-63
  • ChromeDriver v2.33: soporta Chrome v60-62
  • ChromeDriver v2.32: soporta Chrome v59-61
  • ChromeDriver v2.31: soporta Chrome v58-60
  • ChromeDriver v2.30: soporta Chrome v58-60
  • ChromeDriver v2.29: soporta Chrome v56-58
  • ChromeDriver v2.28: soporta Chrome v55-57
  • ChromeDriver v2.27: soporta Chrome v54-56

Nota : Hace unos meses, Chromium Team hizo un anuncio preliminar de que el modelo de versión de ChromeDriver cambiará. Ahora estamos avanzando con el plan. Específicamente, ChromeDriver 2.46 será la última versión con la versión principal 2. Las futuras versiones de ChromeDriver llevarán un número de versión similar a la versión de Chrome. Comenzaremos con un lanzamiento de ChromeDriver 73 la próxima semana, antes del lanzamiento Beta de Chrome 73.

Aquí es cómo funcionará el nuevo modelo de lanzamiento:

  • ChromeDriver utilizará el mismo esquema de número de versión que Chrome. Consulte https://www.chromium.org/developers/version-numbers para obtener más detalles.
  • Cada versión de ChromeDriver admitirá Chrome con los números de versión mayor, menor y de comstackción. Por ejemplo, el próximo ChromeDriver 73.0.3683. * Admitirá todas las versiones de Chrome que comiencen con 73.0.3683.
  • Antes de que una nueva versión principal de Chrome vaya a Beta, se lanzará una versión coincidente de ChromeDriver. Por ejemplo, la próxima semana se lanzará una nueva versión de ChromeDriver para que coincida con la versión Beta de Chrome m73.
  • Después del lanzamiento inicial de una nueva versión principal, lanzaremos los parches según sea necesario. Estos parches pueden coincidir o no con las actualizaciones de Chrome.