Robot Framework框架之使用ride运行用例时,在console log中报AttributeError: 'Output' object has no attribute '_xmllogger'
一、问题描述
在RIDE中执行用例后,在在console log中会提示AttributeError: 'Output' object has no attribute '_xmllogger'
[ ERROR ] Calling method 'log_message' of listener 'D:\robotproject\venv\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py' failed: AttributeError: 'Output' object has no attribute '_xmllogger'
在使用pip命令,查询出安装的RF版本等信息
pip list
二、原因分析
经过查询,在官网也有人发现此类问题,具体原因是在Robot Framework框架中,使用RIDE时出现的错误信息“Calling method 'log_message' of listener '\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py ' failed: AttributeError: 'Output' object has no attribute '_xmllogger'”通常与版本兼容性问题有关。
这个错误是由于Robot Framework 7与RIDE 2.0.8.1版本不兼容导致的。具体来说,当使用Robot Framework 7时,RIDE会尝试调用TestRunnerAgent.py 中的log_message方法,但该方法在Robot Framework 7中不存在,因为TestRunnerAgent.py 中的代码可能是在Robot Framework 6或更早版本中编写的。
此外,证据表明,当使用Python 3.11和Robot Framework 7时,也会遇到类似的问题,因此建议将Robot Framework版本从7.0降级到6.1.1来解决这个问题
Robot Framework版本从7.0降级到6.1.1的命令如下所示:
#先升级一下pip
pip install --upgrade pip
#卸载之前的版本
pip uninstall robotframework
#安装指定版本
pip install robotframework==6.1.1
更新后,再执行用例,可以发现恢复正常