2015-10-30 30 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('\\'', '\\"')