安装SSHLibrary后Eclipse PyDev中RobotFramework无法识别SeleniumLibrary关键字
问题解决方法
根因说明
该报错是RobotFramework核心版本与第三方测试库版本不兼容触发的:
RobotFramework 4.0及以上版本对动态库的get_keyword_arguments方法做了强制校验,要求返回值必须为字符串列表,而低版本的SeleniumLibrary、DatabaseLibrary未适配该规则。你安装SSHLibrary时默认拉取了匹配高版本RF的依赖,自动升级了RobotFramework核心包,导致原有适配低版本RF的SeleniumLibrary、DatabaseLibrary无法正常加载关键字。
修复步骤
- 先查看当前环境所有相关依赖版本
Windows环境执行命令:pip list | findstr robot
Linux/macOS环境执行命令:pip list | grep robot
记录robotframework、robotframework-seleniumlibrary、robotframework-databaselibrary、robotframework-sshlibrary四个包的版本号。 - 根据业务场景选择版本对齐方案:
- 方案1(保留高版本RF):同步升级SeleniumLibrary和DatabaseLibrary到适配高版本RF的稳定版,执行以下命令:
pip install --upgrade robotframework-seleniumlibrary>=4.4.0 pip install --upgrade robotframework-databaselibrary - 方案2(保留原有SeleniumLibrary版本不改动业务代码):回退RobotFramework核心包到3.2.2版本(最后一个无
get_keyword_arguments强制校验的稳定版),执行命令:pip install robotframework==3.2.2
- 方案1(保留高版本RF):同步升级SeleniumLibrary和DatabaseLibrary到适配高版本RF的稳定版,执行以下命令:
- 版本调整完成后,刷新PyDev解释器缓存:打开Eclipse -> Window -> Preferences -> PyDev -> Interpreters -> Python Interpreter,点击「Apply and Close」重新加载依赖,再重启项目即可生效。
后续避坑建议
安装新的RobotFramework第三方库时,添加--no-deps参数可以避免pip自动升级核心依赖,防止破坏现有环境的版本兼容性,比如安装SSHLibrary可使用以下命令:pip install --no-deps robotframework-sshlibrary
内容的提问来源于stack exchange,提问作者Sarthak Shrivastava
相关产品推荐
相关产品推荐

