微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium-webdriver – Selenium Remote 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:ACCESS_KEY@hub.browserstack.com: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)

selenium-server-standalone2.48.0已安装并正在运行.

Python是3.5

这是我写的在browserstack上运行Selenium的代码.我遵循browserstack给出的指令,但是,当我运行它时,它引发了JSONDecodeError.

我还将command_executor更改为http://127.0.0.1:4444/wd/hub但它失败了.然后我将desire_capabilities = desired_cap更改为desired_capabilities.DesireCapabilities.FIREFOX但它也失败了.

我在谷歌搜索,但找不到任何答案.有人可以帮忙吗?非常感谢你.

解决方法

我知道这已经2岁了,但是由于没有人回答,希望这会对其他人有所帮助. desired_cap中的值基本上是无效的json.为了确认,我对 https://jsonlint.com/进行了测试.

修复很简单 – 将所有单引号替换为双引号:

desired_cap = {'browser': 'IE','resolution': '1366x768'}
desired_cap = desired_cap.replace('\\'','\\"')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐