webentwicklung-frage-antwort-db.com.de

TypeError: urlopen () hat mehrere Werte für das Schlüsselwortargument 'body' erhalten, während Tests über Selenium und Python auf Kubuntu 14.04 ausgeführt wurden

ich versuche ein Selenium in Python auf Kubuntu 14.04 auszuführen. Ich erhalte diese Fehlermeldung beim Versuch mit einem Chromedriver oder einem Geckodriver, beide den gleichen Fehler.

Traceback (most recent call last):
  File "vse.py", line 15, in <module>
    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')

Dieser Fehler wird ausgelöst in:

driver = webdriver.Chrome()

Ich habe es mit Optionen versucht, ohne Optionen, ohne den fest codierten Pfad oder den Pfad.

Ich habe keine Ideia was passiert. danke an alle.

6
Geeh Oliveira

Diese Fehlermeldung ...

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

... impliziert, dass der Python Client beim internen Aufruf von urlopen() einen Fehler hatte.

Dieser Fehler wird normalerweise durch ein ältere Version von pip verursacht, das von Ihrem System Paketmanager installiert wird und durch eine neuere Version von pip ersetzt werden kann.


Lösung

Ein Upgrade von pip auf die neueste Version (atleast v18.0) löst Ihr Problem.

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

Verweise

5
DebanjanB

Sie können Ihren urllib3 mit aktualisieren

pip install --upgrade --ignore-installed urllib3
1