TypeError: urlopen () obtuvo varios valores para el argumento de la palabra clave ‘body’ mientras ejecutaba pruebas a través de Selenium y Python en Kubuntu 14.04

Estoy tratando de ejecutar un selenium en Python en Kubuntu 14.04. Me sale este mensaje de error intentando con chromedriver o geckodriver, ambos son el mismo error.

Traceback (most recent call last): File "vse.py", line 15, in  driver = webdriver.Chrome(chrome_options=options, executable_path=r'/root/Desktop/chromedriver') File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/chrome/webdriver.py", line 75, in __init__ desired_capabilities=desired_capabilities) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webdriver.py", line 156, in __init__ self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webdriver.py", line 251, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webdriver.py", line 318, in execute response = self.command_executor.execute(driver_command, params) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/remote_connection.py", line 375, in execute return self._request(command_info[0], url, body=data) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/remote_connection.py", line 397, in _request resp = self._conn.request(method, url, body=body, headers=headers) File "/usr/lib/python3/dist-packages/urllib3/request.py", line 79, in request **urlopen_kw) File "/usr/lib/python3/dist-packages/urllib3/request.py", line 142, in request_encode_body **urlopen_kw) TypeError: urlopen() got multiple values for keyword argument 'body' 

 import time import mapeamentos as map from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.common.exceptions import TimeoutException from random import randint import datetime from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless') options.add_argument('--no-sandbox') driver = webdriver.Chrome(chrome_options=options, executable_path=r'/root/Desktop/chromedriver') driver.get('http://192.168.1.11:66/webclient/login.html') 

Este error se dispara en:

 driver = webdriver.Chrome() 

He intentado con opciones, sin opciones, sin la ruta codificada o con la ruta.

No tengo ideia lo que está pasando. gracias a todos.

Este mensaje de error …

 TypeError: urlopen() got multiple values for keyword argument 'body' 

… implica que el Cliente Python tuvo un error al invocar urlopen() internamente.

Este error generalmente se debe a una versión anterior de pip que instala el administrador de paquetes de su sistema y puede reemplazarse con una versión más nueva de pip .


Solución

Actualizar pip a la última versión (al menos v 18.0 ) solucionará tu problema.

 C:\Users\myUser>python -m pip install --upgrade pip Collecting pip Downloading https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB) 100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 1.3MB 544kB/s Installing collected packages: pip Found existing installation: pip 10.0.1 Uninstalling pip-10.0.1: Successfully uninstalled pip-10.0.1 Successfully installed pip-18.0 

Referencias

  • TypeError: urlopen () obtuvo varios valores para el argumento de la palabra clave ‘body’
  • TypeError: urlopen () obtuvo varios valores para el argumento de la palabra clave ‘body’ ON patch_namespaced_deployement

Puedes actualizar tu urllib3 usando

 pip install --upgrade --ignore-installed urllib3