其他测试框架 [已解决] 安装完 robotframework,运行脚本,出现 unicodeDecodeError

wuming · 2016年08月17日 · 最后由 sunwung 回复于 2017年03月02日 · 2147 次阅读


装完 robotframework,打开 ride,执行脚本出现 unicodeDecodeError
看了各种帖子,试了以下方法:

  1. github 有报出过该 issue,但是最后没有看到怎么修复的,求大神指点。 https://github.com/robotframework/RIDE/issues/1334
  2. 试过改 D:\Python27\Lib 下的 mimetypes.py,依然不起作用。 注:有将 gbk 改成 utf8,也不起作用 python if sys.getdefaultencoding() != 'gbk': reload(sys) sys.setdefaultencoding('gbk')
  3. 将 D:\Python27\Lib\site-packages\robot\utils 的 encodingsniffer.py 的 DEFAULT_SYSTEM_ENCODING = 'cp1252'改成 DEFAULT_SYSTEM_ENCODING = 'UTF-8'不起作用
  4. D:\Python27\Lib\site-packages\robotide\lib\robot\utils 的 encodingsniffer.py 的 DEFAULT_SYSTEM_ENCODING = 'cp1252'改成 DEFAULT_SYSTEM_ENCODING = 'UTF-8'不起作用
  5. 重装 wxPython2.8-win64-unicode-2.8.12.1-py27,不起作用
  6. 已疯。。

版本:wxPython2.8-win64-unicode-2.8.12.1-py27
robotframework-ride-1.5.2.1
python-2.7.11
pywin32-218.win-amd64-py2.7
Selenium2Library-1.7.4

解决方案:
修改 Python27\Lib\site-packages\robotide\contrib\testrunner 文件第 400 行 pop 函数,将整个 pop 函数改为

def pop(self):
        result = ""
        try:
            result=result.decode('UTF-8')
        except UnicodeDecodeError:
            pass        
        return result
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞


数字列表功能在代码块后面又从 1 开始计算了。。@ Lihuazhang

修改 Python27\Lib\site-packages\robotide\contrib\testrunner 文件第 400 行 pop 函数,将 return result.decode('UTF-8') 改为

def pop(self):
        result = ""
        for _ in xrange(self._queue.qsize()):
            try:
                result += self._queue.get_nowait()
            except Empty:
                pass
            try:
                result=result.decode('UTF-8')
            except UnicodeDecodeError:
                pass        
            return result

@wanxi3 可以问下缩进格式吗,我打开 ride 报缩进格式有错误。

缩进有问题,try 和 for 一级

@wanxi3 谢谢,已经解决了。可以加下你的 qq 吗?

#6 楼 @wanxi3 好的,344134880

恒温 关闭了讨论 09月10日 12:54

各位前輩好、因為剛接觸 robot framework, 環境建立好之後也遇到類似問題 照著上述修改 pop function ,但是一 run 發生錯誤,不知道有前輩可以指點一下嗎? thanks

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册