前言

由于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. golang基础之一

    一.第一个go程序 package main import ( "fmt" ) func main(){ fmt.Println("hello world") ...

  2. hdu 5912(迭代+gcd)

    Fraction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  3. [BZOJ3150][Ctsc2013]猴子 期望dp+高斯消元

    3150: [Ctsc2013]猴子 Time Limit: 20 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 163  Solved: 10 ...

  4. HashMap碰撞问题

    HashMap是最常用的集合类框架之一,它实现了Map接口,所以存储的元素也是键值对映射的结构,并允许使用null值和null键,其内元素是无序的,如果要保证有序,可以使用LinkedHashMap. ...

  5. CodeForces 909D Colorful Points

    题解: 暴力,模拟. 把字符串压缩一下,相同的处理成一位,记录下个数,然后暴力模拟即可. #include <bits/stdc++.h> using namespace std; con ...

  6. html5一些容易忽略的细节

    最近由于经常写前端,所以系统性的看了一下html5页面的基础信息,虽然以前写了很久的html代码,但是其中的一些细节还是容易被忽略,所以这里一起整理一下. 在html5中,空元素结尾处的空格和斜杠是可 ...

  7. ACID数据库事务正确执行的四个基本要素的缩写

    ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(T ...

  8. Divisible by Seven CodeForces - 376C (数论)

    You have number a, whose decimal representation quite luckily contains digits 1, 6, 8, 9. Rearrange ...

  9. [BZOJ5109][LOJ #6252][P4061][CodePlus 2017 11月赛]大吉大利,今晚吃鸡!(最短路+拓扑排序+传递闭包+map+bitset(hash+压位))

    5109: [CodePlus 2017]大吉大利,晚上吃鸡! Time Limit: 30 Sec  Memory Limit: 1024 MBSubmit: 107  Solved: 57[Sub ...

  10. 【Kruskal+贪心思想】BZOJ3624-[Apio2008]免费道路

    国庆万岁!!!!! [题目大意] 给定一张无向图,有两种边的类型为0和1.求一个最小生成树使得边0有k条. [思路] 跑两次Kruskal. 第一次的时候优先选择边1,然后判断有哪些边0还不能连通,那 ...