appium+python自動化57-chromedriver與chrome版本


前言

由於app的webview自動化是依賴於chromedriver的,並且每個app的webview版本號都不太一樣,這就導致了,每次都需要重新去下載對應的chromedriver版本.如何根據當前的webdriver版本去匹配對應chromedriver版本,這是一個難題。可以看下如下官方文檔,本篇是根據官方文檔翻譯過來的。

版本不匹配的話一般會報錯:An unknown server-side error occurred while processing the command.
Original error: unknown error: Chrome version must be >= 55.0.2883.0

appium里面chromedriver版本的路徑地址,appium1.7以后版本默認安裝在c盤,找到如下路徑可以看版本號:

\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win

Chromedriver

Appium支持自動化Android網頁(在Chrome和內置瀏覽器中)以及Chrome支持的混合應用程序,方法是 在必要時管理Chromedriver實例和代理命令。它與最新版本的Chromedriver捆綁在一起 ,通過npm包appium-chromedriver Github:appium-chromedriver安裝。

不幸的是,隨着Chromedriver的每次更新,Chrome的最低支持版本都有所增加,因此舊版設備通常無法使用捆綁版本自動執行。在Appium服務器日志中會出現如下錯誤:

An unknown server-side error occurred while processing the command.
Original error: unknown error: Chrome version must be >= 55.0.2883.0

為了解決這個問題,Appium可以配置為使用特定的Chromedriver版本,無論是在安裝時,通過傳遞--chromedriver_version 配置屬性,例如,

推薦此方法
cnmp -v
cnpm install -g appium --chromedriver_version="2.19"

npm安裝不穩定,可以用cnpm安裝

或者在CHROMEDRIVER_VERSION環境變量中指定版本,例如,

CHROMEDRIVER_VERSION=2.20 npm install appium

這也可以設置為LATEST獲取最新版本。

最后,可以在運行時指定版本,方法是指定 --chromedriver-executable服務器標志以及手動下載的Chromedriver可執行文件的完整路徑,例如,

appium --chromedriver-executable /path/to/my/chromedriver

Chromedriver / Chrome兼容性

以下是Chromedriver版本及其相應的可自動更新的最低Chrome版本列表:

chromedriver歷史版本下載地址,點這里

chromedriver 支持Chrome最低版本 Chromedriver下載地址
2.39 v66-68 v2.39鏈接
2.38 v65-67 v2.38鏈接
2.37 64.0.3282.0 v2.37鏈接
2.36 63.0.3239.0 v2.36鏈接
2.35 62.0.3202.0 v2.35鏈接
2.34 61.0.3163.0 v2.34鏈接
2.33 60.0.3112.0 v2.33鏈接
2.32 59.0.3071.0 v2.32鏈接
2.31 58.0.3029.0 v2.31鏈接
2.30 58.0.3029.0 v2.30鏈接
2.29 57.0.2987.0 v2.29鏈接
2.28 55.0.2883.0 v2.28鏈接
2.27 54.0.2840.0 v2.27鏈接
2.26 53.0.2785.0 v2.26鏈接
2.25 53.0.2785.0 v2.25鏈接
2.24 52.0.2743.0 v2.24鏈接
2.23 51.0.2704.0 v2.23鏈接
2.22 49.0.2623.0 v2.22鏈接
2.21 46.0.2490.0 v2.21鏈接
2.20 43.0.2357.0 v2.20鏈接
2.19 43.0.2357.0 v2.19鏈接
2.18 43.0.2357.0 v2.18鏈接
2.17 42.0.2311.0 v2.17鏈接
2.16 42.0.2311.0 v2.16鏈接
2.15 40.0.2214.0 v2.15鏈接
2.14 39.0.2171.0 v2.14鏈接
2.13 38.0.2125.0 v2.13鏈接
2.12 36.0.1985.0 v2.12鏈接
2.11 36.0.1985.0 v2.11鏈接
2.10 33.0.1751.0 v2.10鏈接
2.9 31.0.1650.59 v2.9鏈接
2.8 30.0.1573.2 v2.8鏈接
2.7 30.0.1573.2 v2.7鏈接
2.6 29.0.1545.0 v2.6鏈接
2.5 29.0.1545.0 v2.5鏈接
2.4 29.0.1545.0 v2.4鏈接
2.3 28.0.1500.0 v2.3鏈接
2.2 27.0.1453.0 v2.2鏈接
2.1 27.0.1453.0 v2.1鏈接
2.0 27.0.1453.0 v2.0鏈接

可用的Chromedriver版本的完整列表在這里。要查找任何特定版本的最低支持版本,請獲取Chromium 源代碼,檢查發布提交並檢查kMinimumSupportedChromeVersion 文件中的變量src/chrome/test/chromedriver/chrome/version.cc。(要查找發布提交,可以使用git log --pretty=format:'%h | %s%d' | grep -i "Release Chromedriver version"。)

自動發現兼容的Chromedriver

從Appium 1.8.0開始,Appium能夠為測試中的Chrome版本選擇正確的Chromedriver。盡管Appium只與最新發布的Appium版本發布時的Chromedriver捆綁在一起,但可以下載更多的Chromedriver版本,並將其放置在Appium安裝中(不推薦,因為升級Appium會刪除它們)或在自定義位置可以用chromedriverExecutableDir所需的能力指示給Appium 。此功能是您放置一個或多個Chromedriver可執行文件的目錄的絕對路徑。

同樣,由於Chromedriver的新版本可能不適用於Appium版本,因此可以通過chromedriverChromeMappingFile 所需功能將Chromedrivers自定義映射到它們支持的最低Chrome版本。這應該是具有映射的文件的絕對路徑。該文件的內容需要被解析為JSON對象,如:

{
   "2.42":"63.0.3239",
   "2.41":"62.0.3202"
}

安裝網絡問題

當安裝Appium時,需要下載Chromedriver,因此可能會出現網絡問題,導致安裝失敗。

默認情況下,Chromedriver從中被檢索https://chromedriver.storage.googleapis.com/。要使用ChromeDriver二進制文件的鏡像,請使用npm config屬性chromedriver_cdnurl。

npm install appium-chromedriver --chromedriver_cdnurl=http://npm.taobao.org/mirrors/chromedriver

或者將該屬性添加到您的.npmrc文件中。

chromedriver_cdnurl=HTTP://npm.taobao.org/mirrors/chromedriver

另一種選擇是使用PATH變量CHROMEDRIVER_CDNURL。

CHROMEDRIVER_CDNURL=http://npm.taobao.org/mirrors/chromedriver npm install appium-chromedriver

可能還需要調整網絡代理和防火牆設置以允許下載發生。

cnpm安裝

1.如果npm安裝經常失敗(國外服務器不穩定),可以用cnpm安裝(國內淘寶鏡像),這個相當於是npm的升級版,先用npm安裝cnpm

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

2.用cnpm安裝appium也一樣

cnpm -v
cnpm install -g appium --chromedriver_version="2.19"

原文地址:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md

上海-悠悠 QQ交流群:330467341


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM