此次踩坑过多,先做一次简单记录,然后再不断完善。
问题描述:
1、先是 appium 启动后,执行 python 代码模块到 session.find_element(MobileBy.IMAGE, image_test) 时,会报错提示安装 opencv4nodejs,此时按照提示安装后,仍旧报错;
2、后续,卸载python,重新安装 node-v16.20.2-x64.msi 等软件后,执行python代码模块,提示 Locator Strategy '-image' in appium,根据提示,为 appium 安装 images 插件,启动 appium --use-plugins images,仍旧报错提示 sharp 错误信息,至此,查找不到资料,暂时先记录到这里。
环境:
- Windows 10
- 雷电模拟器 9.0.22
- PyCharm 2022.1.3
- Anaconda 3 23.7.4、安装 python 3.8 和 python 3.11,但是不设置环境变量,该环境直接应用到 PyCharm 的 Python 项目中;
- Python 3.12.2、pip 24,该环境是安装 node-v16.20.2-x64.msi 时,通过勾选 Tools for Native Modules,自动安装并设置,属于全局环境变量;
- Node.js v18.19.1、npm 8.19.3,已安装了 node-v16.20.2-x64.msi 后,appium install plugins images 提示 node 版本过低,直接下载 18.19.1 的压缩包,手动配置到系统环境变量中;
- Cmake 3.26.6
- OpenCV 4.6.0
- Git 2.40.0
一、Cmake
仓库地址:https://github.com/Kitware/CMake/releases
下载 v3.26.6 版本,msi 服务安装模式,自动配置环境变量;
输入以下代码验证版本;
cmake --version
二、Git
仓库地址:https://git-scm.com/
下载并安装,后续如果通过命令行下载 opencv 会用到,但是 github 访问速度不稳定,后续的 opencv 建议直接去官网下载,不要去 github 仓库;
输入以下代码验证版本;
git --version
三、OpenCV
下载地址:https://nchc.dl.sourceforge.net/project/opencvlibrary/4.6.0/opencv-4.6.0-vc14_vc15.exe
安装并配置环境变量;
- OPENCV_INCLUDE_DIR D:\DevSoft\OpenCV\opencv-4.6.0\build\include
- OPENCV_LIB_DIR D:\DevSoft\OpenCV\opencv-4.6.0\build\x64\vc15\lib
- OPENCV_BIN_DIR D:\DevSoft\OpenCV\opencv-4.6.0\build\x64\vc15\bin
- OPENCV4NODEJS_AUTOBUILD_OPENCV_VERSION 4.6.0
- OPENCV4NODEJS_DISABLE_AUTOBUILD 1
四、Node
噩梦之源,从这一步开始,可以说是不断的失败,在后续的 windows-build-tools 和 opencv4nodejs 的安装中,不断踩坑。
先后尝试了多个版本,node-v14.13.1-x64、node-v16.20.2-x64、node-v18.19.1-x64,每个版本的坑都不一样。
选择并下载 node-v16.20.2-x64.msi 版本,并进行安装,勾选 Tools for Native Modules ,进入安装;
安装完成后,会启动安装相应的工具,这里面就包括 chocolatey、Python、Visual Studio Build Tools 等工具和模块,我也不想安装这些,但是网上的攻略我都试过了,比如只安装vc工具包,但是在后续的 windows-build-tools 模块的安装中必报错!我已经无语了。。
安装完成后,检验当前的环境信息,这里我的 node 版本已经是18.19.1,正如上面所言,我重新下载了一个 node-v18.19.1-win-x64.zip 压缩包,并进行了 node 的环境变量重新配置;
五、Windows-build-tools
仓库地址:https://github.com/felixrieseberg/windows-build-tools
文档说明:https://devblogs.microsoft.com/cppblog/introducing-the-visual-studio-build-tools/
通过以下命令,安装 windows-build-tools,不出意外,应该是会成功的,否则就是出意外了。(我就是在说废话,出意外,你的 vc 环境有问题,看看你是不是装的 python 是不是 msi 的版本,不是的话,重新装过!记得一定要勾选 Tools for Native Modules )
npm install --global windows-build-tools
踩坑记录之报错了,手动安装 vs_BuildTools.exe,这个方法对我来说是没用的。
因为 npm install --global windows-build-tools 报错,尝试手动安装工具后,仍旧报错,乌鱼子。。
六、Appium Server
通过以下命令,安装 Appium Server;
npm install --global appium
七、Opencv4nodejs
进入到 appium server 包下(D:\DevSoft\Nodejs\node_global\node_modules\appium),执行 npm 安装命令;
npm install --save opencv4nodejs
八、检查与测试
8.1 确认 Appium Server 状态
通过以下命令,安装 Appium-Doctor,可以检查 Appium Server 的配置情况,并给出提示;
npm install --global appium-doctor
输入命令,开始检查;
appium-doctor
如果提示缺少 apkanalyzer.bat,进入 https://developer.android.google.cn/studio?hl=zh-cn ,下载-仅限命令行工具(zip),复制 bin 和 lib 到 D:\DevSoft\Android\android-sdk\tools 下,并将 apkanalyzer.bat 也同步复制到 D:\DevSoft\Android\android-sdk\platform-tools 下,重新执行 appium-doctor 进行检查;
8.2 Appium Server 驱动
输入命令,检查驱动情况;
驱动列表:appium driver list
更新Appium:npm i --location=global appium
安装驱动:appium driver install uiautomator2
如果出现报错,无法安装,则设置环境变量;
APPIUM_SKIP_CHROMEDRIVER_INSTALL=1
8.3 Appium Server 插件
输入命令,检查插件情况;
插件列表:appium plugin list
插件安装:appium plugin install images
8.4 Appium Inspector 配置
8.5 Python 代码配置
desired_cap = {
'platformName': 'android',
'platformVersion': '9',
'deviceName': 'emulator-5554',
# 'appPackage': 'gov.pianzong.androidnga',
# 'appActivity': '.activity.LoadingActivity',
'appPackage': 'com.bftzn.ld',
'appActivity': 'com.sjjh.view.JuHeSplashActivity',
'noReset': 'true',
'newCommandTimeout': '300',
'chromedriverExecutable': r'D:\Workplace\AutoTestProject\drivers\chromedriver_860424022.exe',
'automationName': 'UiAutomator2'
}
session = webdriver.Remote('http://127.0.0.1:4723', desired_cap)
8.6 关于 appium --use-plugins images 报错
提示内容如下,因为解决过程尝试了多次,无法复制原错误代码,大概如下:
Possible solutions:
- Ensure optional dependencies can be installed:
npm install --include=optional sharp
yarn add sharp --ignore-engines
- Ensure your package manager supports multi-platform installation:
See https://sharp.pixelplumbing.com/install#cross-platform
- Add platform-specific dependencies:
npm install --os=x32 --cpu=x64 sharp
npm install --force @img/sharp-linuxmusl-x64
- Consult the installation documentation:
See https://sharp.pixelplumbing.com/install
这个是在加载 Appium Server Plugins 的插件错误,如果出现这个问题,请开始瞎猫碰见死耗子。。
- 第一步,进入 appium 项目下,执行卸载 opencv4nodejs 包的操作,npm uninstall opencv4nodejs,然后重新安装 npm install --save opencv4nodejs;(原本我以为是因为我安装的是 OpenCV 4.6.0 版本,然后 opencv4nodejs 包版本为 5.6.0 ,是不匹配的问题,结果好像不是。因为我尝试降级 npm install [email protected],会疯狂报错,故而中止。)
- 第二步,之前使用过 npm install --include=optional sharp 和 npm install --os=x32 --cpu=x64 sharp 命令,安装了这个 sharp 包,我查了一下资料,记得用 bing 查,以为是版本问题,目前默认安装 0.33.2 版本(根据错误提示到 C:\Users\Administrator\.appium\node_modules\@appium\images-plugin 下的 package.json,是可以看到已经配置的是 0.33.2,但是不知道为什么,版本一致仍旧报错),有人反馈需要降级到 0.32.6,然后我执行 npm uninstall sharp ,接着重新安装 npm install [email protected],结果依然不行。。最后死马当活马医,卸载掉 [email protected],重新安装 npm install --os=x32 --cpu=x64 sharp 命令,居然奇迹般的成功了。。
- 我真是服了。。到底什么原因。回头再说吧。