Voici le repro:Pourquoi current_url déclenche-t-il "Aucun objet JSON n'a pu être décodé" avec Selenium & PhantomJS sur Ubuntu 16.04?
sudo apt install phantomjs
export QT_QPA_PLATFORM=offscreen
python
>>> import selenium.webdriver
>>> from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
>>> browser = selenium.webdriver.PhantomJS(desired_capabilities=DesiredCapabilities.PHANTOMJS)
>>> browser.get('http://example.com')
>>> browser.title
u'Example Domain'
>>> browser.current_url
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 454, in current_url
return self.execute(Command.GET_CURRENT_URL)['value']
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 201, in execute
self.error_handler.check_response(response)
File "/usr/local/lib.python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 102, in check_response
value = json.loads(value_json)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Notes:
- Je suis en cours d'exécution dans une machine virtuelle avec toutes les mises à jour installées (
sudo apt update
etsudo apt dist-upgrade
ont TOURNÉ). - Ce problème semble également être capturé en tant que Ubuntu bug 1569899. Je n'ai pas encore essayé le correctif suggéré (build PhantomJS de tarball).
- La variable
QT_QPA_PLATFORM=offscreen
est de corriger l'erreur: "QXcbConnection: Impossible de se connecter à afficher" (Debian bug 817277, problème PhantomJS 14376)
UPDATE J'ai ajouté simple print
pour capturer l'état brut réponse et voici ce qu'il était:
{'status': 404, 'value': u"Error: - Unable to load Atom 'execute_script' from file ':/ghostdriver/./third_party/webdriver-atoms/execute_script.js'"}