前言

由于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

appium+python自动化57-chromedriver与chrome版本的更多相关文章

  1. Appium+python自动化8-Appium Python API

    Appium+python自动化8-AppiumPython API   前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...

  2. Appium+python自动化20-查看iOS上app元素属性

    前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...

  3. Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP

    前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...

  4. Appium+python自动化20-查看iOS上app元素属性【转载】

    前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版 ...

  5. Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP【转载】

    前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...

  6. chromedriver与chrome版本对应

    今天把手头有的一些关于selenium测试的资源整理了一下,分享出来. 1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是 ...

  7. Appium+python自动化-查看app元素属性

    本文转自:https://www.cnblogs.com/yoyoketang/p/7581831.html 前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道 ...

  8. chromedriver与chrome版本映射列表

    chromedriver与chrome版本映射列表: chromedriver版本 支持的Chrome版本 v2.30 v58-60 v2.29 v56-58 v2.28 v55-57 v2.27 v ...

  9. Python3 ChromeDriver与Chrome版本映射表(更新至v2.43)

    Python3 ChromeDriver与Chrome版本映射表(更新至v2.43) ChromeDriver下载链接:http://chromedriver.storage.googleapis.c ...

随机推荐

  1. 关于OnPaint、FormPaint会不停的触发 触发多次的情形---讨论总结

    关于OnPaint会不停的一直触发 触发多次的问题,是这样的 首先OnPaint是响应windows的WM_PAINT消息的,你显示器上 能看到的比如说 按钮button, memo什么的 都是画出来 ...

  2. 转载:Logistic回归原理及公式推导

    转载自:AriesSurfer 原文见 http://blog.csdn.NET/acdreamers/article/details/27365941 Logistic回归为概率型非线性回归模型,是 ...

  3. spring源码解析--事务篇(前篇)

    对于每一个JAVA程序员,spring应该是再熟悉不过的框架了,它的功能有多强大我就不多说了,既然他有这么强大的功能,是如何实现的呢?这个就需要从他的原理去了解,而最直接了解原理的方式莫过于源码.当然 ...

  4. Mysql学习之order by的工作原理

    在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求.假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 1000 个人的姓名.年龄. 查询语句为: ; 全字段排序 为 ...

  5. anaconda不错的

  6. day5 常用模块json和pickle

    json 和 pickle json和pickle是用于字符串序列化和反序列化的过程,我们在存储和使用的时候,经常把列表存入文件,读取的时候我们还想以列表的形式读取.就需要使用json和pickle. ...

  7. ASP.NET WebAPI 06 HttpMessageHandler管道

    HttpMessageHandler管道 在Web API的中,微软为了更好的进行架构扩展,采用的了一套管道设计----HttpMessageHander(其实WCF也有类似架构). 在整个管道中的头 ...

  8. DER编码简介

    概念:DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案. DER与BER的区别:DER在BER的基础上增加了如下限制:长度小于等于127,必须使用短型长度表示法.长度大于127,必 ...

  9. 洛谷P2680 运输计划 [LCA,树上差分,二分答案]

    题目传送门 运输计划 Description 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个星球,还有 n?1 条双向航道,每条航道建立在两个星球之间, 这 n?1 条航道连通了 L 国的所 ...

  10. 洛谷P2243 电路维修 [最短路]

    题目传送门 电路维修 题目背景 Elf 是来自Gliese 星球的少女,由于偶然的原因漂流到了地球上.在她无依无靠的时候,善良的运输队员Mark 和James 收留了她.Elf 很感谢Mark和Jam ...