appium+opencv環境配置使用findElementByImage

在新版本的appium中提供了findelementbyimage的方法。在測試過程中,也有遇到某些元素無法根據ID、name、xpath等查找。

所以根據圖片查找元素是一個不錯的解決方法。由於使用findelementbyimage需要依賴opencv,

下面記錄以下在安裝opencv環境的步驟和踩過的坑。

安裝過程
安裝步驟,非常重要,以下命令,在啓動命令行窗口時,需要已管理員身份啓動。

第一步

https://github.com/justadudewhohacks/opencv4nodejs#how-to-install

根據opencv裏面的介紹需要先安裝Cmake

cmake下載地址https://cmake.org/download/

cmake-3.14.0-rc4-win64-x64.msi

幾乎是傻瓜式安裝,在安裝的時候選擇自動配置環境變量就好了。不然要自己手動配置,安裝完後第一步就完成了

------------------------------------------------------------------------------------------------------------------------------------華麗的分割線

第二步

使用cnpm的淘寶鏡像,如果不用這個,安裝說明使用npm是安裝不了的,就算你翻了牆也一樣,我用的公司的網,

是可以上外網的,倒騰了很久還是不行,總是會安裝不成功,後面換成了cnpm就順利一些了。

npm install -g cnpm --registry=https://registry.npm.taobao.org

------------------------------------------------------------------------------------------------------------------------------------華麗的分割線

第三步

運行以下命令

cnpm install --global windows-build-tools

會自動安裝visual studio和python, python好像必須是3.0以下的。幸好之前自己裝的是2.7的符合要求。

在這一步遇到了很多問題。最開始沒有用cnpm這一步執行就是無法通過。

後面自己手動安裝了visual studio2013,具體也不知道是因爲我自己手動安裝了這個軟件才成功的還是

因爲換成了cnpm才成功的。如果用cnpm運行還是不行的話,建議手動安裝visual studio2013吧。
這裏可以下載visual studio2013下載後解壓,然後運行wdexpress_full.exe文件。
在這裏插入圖片描述

在安裝好以後似乎要設置一下這個,不然編譯的時候會報錯。就是在這裏搞了很久。

你安裝的visual studio是哪個版本的, msvs_version後面就寫哪個版本,我開始寫錯了寫成了msvs_version 2015

npm config -g set msvs_version 2013

然後在控制面板–>程序和功能 開啓標紅兩項,這個不開不知道行不行。
在這裏插入圖片描述

------------------------------------------------------------------------------------------------------------------------------------華麗的分割線

第四步

這個不知道需不需要,反正裝了一下。看的資料太多了,也太亂了。

npm install -g node-gyp
------------------------------------------------------------------------------------------------------------------------------------華麗的分割線

第五步

在命令行跳轉到appium的路徑下面,我的appium路徑是下面這個,根據個人路徑來。

C:\Users\hem\AppData\Roaming\npm\node_modules\appium>

然後執行以下命令,然後就等吧,需要很長時間,差不多30多分鐘吧

cnpm install --save opencv4nodejs

出現這個就是成功了,雖然我的最後面還報了幾個錯誤,但不用理會,appium也能夠使用了。
在這裏插入圖片描述
------------------------------------------------------------------------------------------------------------------------------------華麗的分割線

使用方法

String path = System.getProperty("user.dir")+"/res/elements/image/"+value+".png";

androidDriver.findElementByImage(getReferenceImageB64(path)).click();

private static String getReferenceImageB64(String image){
String elementsFile = null;
//URL refImgUrl = getClass().getClassLoader().getResource("/123.png");
File refImgFile = new File(image);
try {
elementsFile = Base64.getEncoder().encodeToString(Files.readAllBytes(refImgFile.toPath()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return elementsFile;
}

這樣就可以根據圖片去查找元素了。

如果出現以下錯誤,執行一下brew unlink tesseract 這個
在這裏插入圖片描述

錯誤信息
這是沒有在appium路徑下運行,就會報錯。因爲這個路徑下面沒有package.json
在這裏插入圖片描述
這是沒有安裝visual studio2013,第三步跳過就會出現這個報錯
在這裏插入圖片描述
由於安裝的時候也不知道能不能搞好,很多錯誤信息都忘了截圖了。後面有機會再弄的時候重新整理一下。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章