前言
由于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服务器日志中会出现如下错误:
为了解决这个问题,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版本的完整列表在这里。要查找任何特定版本的最低支持版本,请获取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对象,如:
安装网络问题
当安装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
python自动化全栈课程7月开学,现在开始可以报名了
本期课程截止时间:2018-06-30
领取专属 10元无门槛券
私享最新 技术干货