2015-10-30 63 views
4

我的代碼:硒的遠程webdriver的給JSONDecodeError

import unittest 
from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
from selenium.webdriver.common import desired_capabilities 

class test_mycode(unittest.TestCase): 
    def setUp(self): 
     desired_cap = {'browser': 'IE', 'browser_version': '8.0', 'os': 'Windows', 'os_version': '7', 'resolution': '1366x768'} 
     self.driver = webdriver.Remote(command_executor='http://username:[email protected]:80/wd/hub', desired_capabilities=desired_cap) 

    def test_website(self):  
    ..... 

的錯誤是:

Traceback (most recent call last): 
File "C:\Workspace\Pumpkin Patch Website\test cases\_test_mycode.py", line 55, in setUp 
    desired_capabilities=desired_cap) 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium-2.48.0-py3.5.egg\selenium\webdriver\remote\webdriver.py", line 87, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium-2.48.0-py3.5.egg\selenium\webdriver\remote\webdriver.py", line 141, in start_session 
    'desiredCapabilities': desired_capabilities, 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium-2.48.0-py3.5.egg\selenium\webdriver\remote\webdriver.py", line 201, in execute 
    self.error_handler.check_response(response) 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\site-packages\selenium-2.48.0-py3.5.egg\selenium\webdriver\remote\errorhandler.py", line 102, in check_response 
    value = json.loads(value_json) 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 319, in loads 
    return _default_decoder.decode(s) 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 339, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
File "C:\Users\elton.tiong\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 357, in raw_decode 
    raise JSONDecodeError("Expecting value", s, err.value) from None 
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 

硒服務器standalone2.48.0安裝並運行。

Python是3.5

這是我寫的關於Browserstack硒運行的代碼。我遵循Browserstack給出的說明,但是,當我運行它時,它引發了JSONDecodeError。

我也改變了command_executor爲http://127.0.0.1:4444/wd/hub,但它失敗了。然後,我將desire_capabilities = desired_cap更改爲desired_capabilities.DesireCapabilities.FIREFOX,但它也失敗。

我到處搜索,但無法找到任何答案。有人可以幫忙嗎?非常感謝你。

回答

0

我知道這是2歲,但由於沒有人回答,希望這會有助於其他人。 desired_cap中的值基本上是無效的json。爲了確認,我將它與https://jsonlint.com/對戰。

解決方法是簡單的 - 取代所有的單引號雙引號:

desired_cap = {'browser': 'IE', 'browser_version': '8.0', 'os': 'Windows', 'os_version': '7', 'resolution': '1366x768'} 
desired_cap = desired_cap.replace('\\'', '\\"')