Python – Selenium PhantomJS – Ошибка JSON

У меня есть небольшой тестовый скрипт python, который использует Selenium и PhantomJS. Версия Python – 2.7, а PhantomJS – 1.9.2. Позже я планирую использовать это с BeautifulSoup для доступа к финансовому веб-сайту.

Мой сценарий python выглядит так:

from selenium import webdriver phantomJSPath = "C:\my working dir\\Lib\phantomjs.exe" browser = webdriver.PhantomJS(executable_path=phantomJSPath) 

После выполнения я получаю следующую ошибку:

Файл «C: \ my working dir \ Test.py», строка 32, в запуске

 browser = webdriver.PhantomJS(executable_path=phantomJSPath) File "C:\Python27\lib\site- packages\selenium\webdriver\phantomjs\webdriver.py", line 56, in __init__ desired_capabilities=desired_capabilities) File "C:\Python27\lib\site- packages\selenium\webdriver\remote\webdriver.py", line 87, in __init__ self.start_session(desired_capabilities, browser_profile) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 136, in start_session 'desiredCapabilities': desired_capabilities, File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 196, in execute self.error_handler.check_response(response) File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 102, in check_response value = json.loads(value_json) File "C:\Python27\lib\json\__init__.py", line 326, in loads return _default_decoder.decode(s) File "C:\Python27\lib\json\decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded 

Кто-нибудь знает, почему я получаю эту ошибку?

3 Solutions collect form web for “Python – Selenium PhantomJS – Ошибка JSON”

У меня есть аналогичная проблема (переходная) при вызове browser.close () с селеном 1.9.8, работающим на Ubunto 15:

  File "propertunity/soup/Soup.py", line 121, in get... browser.close() File "/home/<user>/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 473, in close self.execute(Command.CLOSE) File "/home/<user>/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 201, in execute self.error_handler.check_response(response) File "/home/<user>/.local/lib/python2.7/site-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 338, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded 

Кажется, есть известная проблема с close (), которая не совсем очищается после завершения работы с браузером. Попытайтесь изменить close (), чтобы выйти и установить для объекта браузера значение None.

Вы должны предоставить дополнительные параметры для определения browser , он пытается назначить desired_capabilities=desired_capabilities которые ожидают json-объект. Вы можете сделать это следующим образом:

 from selenium import webdriver phantomJSPath = "C:\my working dir\\Lib\phantomjs.exe" desiredCap = {'platform': 'ANY', 'browserName': 'phantomjs', 'version': '', 'javascriptEnabled': True} browser = webdriver.PhantomJS(executable_path=phantomJSPath, port=0, desired_capabilities=desiredCap) 

Извините, что ответила на мою собственную щедрость, но для тех, кто может столкнуться с подобными проблемами: переменная окружения http_proxy не очень хорошо работает с phantomjs и selenium. Я удалил его, и все работало так, как должно было.

  • Чтение скрытого значения в div с использованием Selenium Python binding
  • Отсутствует файл в скомпилированном py2exe app selenium
  • Как отправить текст в невидимое поле ввода
  • Ошибка Webdriver: «Отсутствует предупреждение» после того, как UnexpectedAlertPresentException выбрано
  • Откройте web в новой вкладке Selenium + Python
  • Python Selenium + Datepicker Click
  • Не удается отправить ключи на страницу входа в систему Paypal
  • получение URLError: <ошибка urlopen Соединение отклонено> в selenium webdriver с использованием python в phantomjs
  • Python - лучший язык программирования в мире.