TypeError: urlopen () πήρε πολλές τιμές για λέξη-κλειδί επιχείρημα «σώμα», ενώ προσπαθεί σελήνιο σε Xubuntu 14.04.5

ψήφοι
2

περιβάλλον

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty

GCC

gcc --version
gcc (Ubuntu 4.8.5-4ubuntu8~14.04.2) 4.8.5

Πύθων

python --version
Python 2.7.6

Κουκούτσι

pip --version
pip 18.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

urllib3

pip list | grep url
urllib3                      1.7.1     

Chromedriver

chromedriver --version
ChromeDriver 2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4)

Χρώμιο

chromium-browser --version
Chromium 65.0.3325.181 Built on Ubuntu , running on Ubuntu 14.04

Σελήνιο

pip install selenium
Requirement already satisfied: selenium in /usr/local/lib/python2.7/dist-packages (3.141.0)
Requirement already satisfied: urllib3 in /usr/lib/python2.7/dist-packages (from selenium) (1.7.1)

οδηγού Chrome για Linux 64bit εγκατάσταση

Προσπάθησα αρκετές έκδοση, αλλά όλα οδηγούν στο ίδιο νέο πρόβλημα

rm ~/Downloads/chromedriver_linux64.zip \
wget -N http://chromedriver.storage.googleapis.com/2.26/chromedriver_linux64.zip -P ~/Downloads; \
unzip ~/Downloads/chromedriver_linux64.zip -d ~/Downloads; \
chmod +x ~/Downloads/chromedriver; \
rm /usr/local/share/chromedriver; \
sudo mv -f ~/Downloads/chromedriver /usr/local/share/chromedriver; \
rm /usr/local/bin/chromedriver; \
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver; \
rm /usr/bin/chromedriver; \
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver; \
ls -al /usr/bin/chromedriver; \
ls -al /usr/local/bin/chromedriver; \
ls -al /usr/local/share/chromedriver

... προσπάθησα

# wget -N http://chromedriver.storage.googleapis.com/2.21/chromedriver_linux64.zip -P ~/Downloads
# wget -N http://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip -P ~/Downloads
# wget -N http://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.zip -P ~/Downloads
# wget -N http://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip -P ~/Downloads
# wget -N http://chromedriver.storage.googleapis.com/71.0.3578.33/chromedriver_linux64.zip -P ~/Downloads

σενάριο δοκιμής test.py

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities    
# enable browser logging
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = { 'browser':'ALL' }
driver = webdriver.Chrome(desired_capabilities=d)
# load some site
driver.get('http://foo.com')
# print messages
for entry in driver.get_log('browser'):
    print entry

Λάθος

python test.py 
Traceback (most recent call last):
  File test.py, line 6, in <module>
    driver = webdriver.Chrome(desired_capabilities=d)
  File /usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py, line 81, in __init__
    desired_capabilities=desired_capabilities)
  File /usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py, line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File /usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py, line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File /usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py, line 319, in execute
    response = self.command_executor.execute(driver_command, params)
  File /usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/remote_connection.py, line 374, in execute
    return self._request(command_info[0], url, body=data)
  File /usr/local/lib/python2.7/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/python2.7/dist-packages/urllib3/request.py, line 79, in request
    **urlopen_kw)
  File /usr/lib/python2.7/dist-packages/urllib3/request.py, line 142, in request_encode_body
    **urlopen_kw)
TypeError: urlopen() got multiple values for keyword argument 'body'

Ακολούθησε άλλα θέματα

TypeError: urlopen πήρε πολλές τιμές για το επιχείρημα λέξη-κλειδί «σώμα» κατά την εκτέλεση δοκιμών μέσω σελήνιο και Python στο Kubuntu 14.04

urllib3 έκδοση

# aptitude show python-urllib3
Package: python-urllib3                  
State: installed
Automatically installed: yes
Version: 1.7.1-1ubuntu4.1
Priority: optional
Section: python
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: all
Uncompressed Size: 201 k
Depends: python:any (< 2.8), python:any (>= 2.7.5-5~), python-six
Recommends: ca-certificates
Description: HTTP library with thread-safe connection pooling for Python
 urllib3 supports features left out of urllib and urllib2 libraries. 

 * Re-use the same socket connection for multiple requests (HTTPConnectionPool and HTTPSConnectionPool) (with optional client-side certificate verification). 
 * File posting (encode_multipart_formdata). 
 * Built-in redirection and retries (optional). 
 * Supports gzip and deflate decoding. 
 * Thread-safe and sanity-safe. 
 * Small and easy to understand codebase perfect for extending and building upon.
Homepage: http://urllib3.readthedocs.org

Έχω μια άλλη οργάνωση με ίδιες εκδόσεις chromedriver χρώμιο-browser και το σφάλμα δεν συμβαίνει. Τι άλλο θα μπορούσε να ελέγξω;

Οποιεσδήποτε περαιτέρω δείκτες;

ΕΚΣΥΓΧΡΟΝΙΖΩ

Στο περιβάλλον όπου το ζήτημα δεν συμβαίνει το pip έκδοση δεν είναι το ίδιο.

pip v1.5.4αντί pip install --upgrade pip==1.5.4 Τώρα απεγκατάσταση pip 18.1και επανεγκατάσταση πακέτα pip μου.

Για να εγκαταστήσετε ξανά την πιο πρόσφατη έκδοση του pipαν θέλετε να επαναφέρετε και πάλι

python -m pip install --upgrade pip

Σημειώνεται επίσης ότι στο μηχάνημα λειτουργία έχω μια ελαφρώς διαφορετική εκδοχή του GCC

gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

επιλυθεί

Έπρεπε να ξεκινήσουμε από μια νέα εγκατάσταση Xubuntu και έτρεξε

sudo pip install -U urllib3
Δημοσιεύθηκε 07/11/2018 στις 23:48
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Πιθανές λύσεις:

1- Δοκιμάστε την αναβάθμιση του urllib3 έκδοση o, φαίνεται ότι η έκδοση του urllib3 είναι παλιά σύμφωνα με: https://github.com/kubernetes-client/python/blob/master/requirements.txt

Βεβαιωθείτε ότι η έκδοση του urllib3 είναι 1,16 ή περισσότερο. Εδώ, μπορείτε να βρείτε τις ρυθμίσεις: https://launchpad.net/ubuntu/+source/python-urllib3/1.21.1-1

Ref (άλλη θέση στο SO): TypeError: urlopen () πήρε πολλές τιμές για το επιχείρημα λέξη-κλειδί «σώμα» κατά την εκτέλεση δοκιμών μέσω σελήνιο και Python στο Kubuntu 14.04

2 Ενημερώστε την έκδοση της python:

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update 
sudo apt-get install python3.6
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
sudo update-alternatives --config python3

Ref: http://ubuntuhandbook.org/index.php/2017/07/install-python-3-6-1-in-ubuntu-16-04-lts/

Απαντήθηκε 10/11/2018 στις 23:51
πηγή χρήστη

ψήφοι
1

Πήρε κάποιο ρίσκο και να αφαιρείται urllib 1.7.1 (προεπιλογή μια που αποστέλλεται εντός Ubuntu 14,04). Αυτό μπορεί να εξαρτάται από τις απαιτήσεις σας, αν θέλετε να πάρετε τον κίνδυνο και να απεγκαταστήσετε.

sudo apt-get remove python-urllib3

ακολουθούμενη από

sudo pip install -U urllib3

Αυτό καθόρισε το θέμα για μένα.

Απαντήθηκε 08/11/2018 στις 00:40
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more