此次踩坑過多,先做一次簡單記錄,然後再不斷完善。
問題描述:
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 命令,居然奇蹟般的成功了。。
- 我真是服了。。到底什麼原因。回頭再說吧。