0

我正在尝试使用 opencv4nodejs 与 appium 进行图像比较,但出现错误。

版本信息

  • 系统-mac
  • 操作系统:卡特琳娜 10.15.7
  • appium:CLI - 1.22.0
  • 节点:v17.0.1
  • npm:8.1.0

设置完成到现在

  1. 导出 OPENCV4NODEJS_DISABLE_AUTOBUILD=1 -----在 bash.profile
  2. npm install -g appium ----- [位置:/usr/local/lib/node_modules]
  3. npm i -g opencv4nodejs ----- [位置:/usr/local/lib/node_modules]
  4. 使用 'cd' 进入 appium 文件夹 ---- npm 链接 opencv4nodejs ----- [创建的链接显示在 appium 文件夹中]

错误

1.在日食中

org.openqa.selenium.WebDriverException:处理命令时发生未知的服务器端错误。原始错误:使用 OpenCV 功能需要“opencv4nodejs”模块。请先安装它('npm i -g opencv4nodejs')并重新启动 Appium。

2.关于appium服务器日志

[调试] [XCUITest] 执行命令 'compareImages'

dbug 支持初始化 opencv

dbug 支持加载本地包'opencv4nodejs'

dbug 支持无法加载本地包'opencv4nodejs':找不到模块'/usr/local/lib/node_modules/opencv4nodejs/build/Release/opencv4nodejs'

dbug 支持 需要堆栈:dbug 支持 - /usr/local/lib/node_modules/opencv4nodejs/lib/cv.js

dbug 支持 - /usr/local/lib/node_modules/opencv4nodejs/lib/opencv4nodejs.js

dbug 支持 - /usr/local/lib/node_modules/appium/node_modules/appium-support/build/lib/node.js

dbug 支持 - /usr/local/lib/node_modules/appium/node_modules/appium-support/build/lib/image-util.js

dbug 支持 - /usr/local/lib/node_modules/appium/node_modules/appium-support/build/index.js

dbug 支持 - /usr/local/lib/node_modules/appium/build/lib/logsink.js

dbug 支持 - /usr/local/lib/node_modules/appium/build/lib/main.js

dbug 支持无法加载全局包'opencv4nodejs':“路径”参数必须是字符串类型。收到未定义

dbug 支持链接包'opencv4nodejs'

[debug] [WebDriverAgent] Parsed BUILD_DIR 配置值:'/Users/-username-/Library/Developer/Xcode/DerivedData/WebDriverAgent-(一些数据)/Build/Products'

[调试] [WebDriverAgent] 得到派生数据根:'/Users/-username-/Library/Developer/Xcode/DerivedData/WebDriverAgent-(一些数据)'

dbug支持无法加载包'opencv4nodejs',链接失败:命令'npm link opencv4nodejs'退出,代码为236

dbug 支持 npm ERR!代码 ENOTDIR

dbug 支持 npm ERR!系统调用重命名

dbug 支持 npm ERR!路径 /Users/-用户名-/node_modules/opencv4nodejs

dbug 支持 npm ERR!dest /Users/-用户名-/node_modules/.opencv4nodejs-YhDFjzvW

dbug 支持 npm ERR!错误号 -20

dbug 支持 npm ERR!ENOTDIR:不是目录,重命名 '/Users/-username-/node_modules/opencv4nodejs' -> '/Users/-username-/node_modules/.opencv4nodejs-YhDFjzvW'

调试支持

dbug 支持 npm ERR!可以在以下位置找到此运行的完整日志:

dbug 支持 npm ERR!/Users/-username-/.npm/_logs/2021-11-02T08_10_14_713Z-debug.log dbug 支持

呃!支持无法加载包'opencv4nodejs':无法加载包'opencv4nodejs',链接失败:命令'npm link opencv4nodejs'退出代码236

警告支持无法加载'opencv4nodejs':无法加载包'opencv4nodejs':无法加载包'opencv4nodejs',链接失败:命令'npm link opencv4nodejs'退出,代码为236

4

1 回答 1

0

我在几周前面临同样的问题,我认为 opnecv4nodejs 在 appium 1.20.xx 上无法正常工作,这是我的解决方案:

一步步 :

  1. 卸载 opencv-build、opencv4nodejs 和 opencv:

brew uninstall opecv
npm uninstall -g opencv-build
npm uninstall -g opencv4nodejs

  1. 将 Appium 降级到 1.20.xx

sudo npm uninstall -g appium
sudo npm install -g appium@1.20.2 --unsafe-perm=true --allow-root --force
sudo chown -R $(whoami) <path of Appium node modules> (e.g: /usr/local/lib/node_modules/appium)

  1. 将节点降级到 v10.16.1,您可以按照此步骤如何完全卸载 Node.js,然后从头重新安装(Mac OS X) ,请不要使用 nvm 或确保您的节点模块位于 usr/loca/lib/node_modules

  2. 设置 env 变量以选择要安装的 opencv 模块 WITH autobuild

export OPENCV4NODEJS_AUTOBUILD_FLAGS=-DBUILD_LIST=core,imgproc,imgcodecs,videoio,highgui,video,calib3d,features2d,objdetect,dnn,ml,flann,photo,stitching,gapi

  1. 安装 opencv & opencv4nodejs

npm i -g opencv-build
npm i -g opencv4nodejs

于 2022-02-21T09:10:05.160 回答