Appium调用OpenCV特性时报opencv4nodejs模块缺失错误
问题解决步骤
1. 修复opencv4nodejs编译缺失问题
你之前配置的OPENCV4NODEJS_DISABLE_AUTOBUILD=1会关闭opencv4nodejs的自动编译流程,导致安装后缺少运行必需的二进制文件,是报错的核心原因:
- 打开
~/.bash_profile文件,删除export OPENCV4NODEJS_DISABLE_AUTOBUILD=1配置行,执行source ~/.bash_profile让配置生效 - 卸载已安装的全局opencv4nodejs:
npm uninstall -g opencv4nodejs - 提前安装opencv基础依赖,Mac下执行:
brew install opencv - 重新全局安装opencv4nodejs,开启编译:
npm install -g opencv4nodejs --build-from-source - 安装完成后验证二进制文件是否存在:执行
ls /usr/local/lib/node_modules/opencv4nodejs/build/Release/opencv4nodejs.node,无报错则说明编译正常
2. 修复npm link冲突报错
日志中ENOTDIR: not a directory, rename '/Users/-username-/node_modules/opencv4nodejs'报错是因为用户根目录下的node_modules文件夹中存在一个同名的无效文件/软链,导致link操作失败:
- 执行
rm -rf ~/node_modules/opencv4nodejs删除冲突的无效文件 - 进入Appium全局安装目录:
cd /usr/local/lib/node_modules/appium - 重新创建软链:
npm link opencv4nodejs
3. 验证生效
重启Appium服务,重新运行图像比对相关用例即可正常调用OpenCV能力。
可选:版本兼容性适配
如果完成上述操作后依然报错,可将Node版本从v17降级到16.x LTS版本,opencv4nodejs对过高的Node版本兼容性较差,降级后重复上述操作即可。
内容的提问来源于stack exchange,提问作者omkar
相关产品推荐
相关产品推荐

