前言

由于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. selenium之 chromedriver与chrome版本映射表_趣说Python爬虫07--Selenium的基本语法

    上回我们说到Python大星 通过Ajax数据爬取头条主页文章 不知各位英兄豪姐有没有发现 有些Ajax 接口含有很多加密参数 参数规律讳莫如深 Ajax数据抓取障碍重重 终于到了这个时刻 Pytho ...

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

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

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

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

  4. Appium+python自动化-启动app

    Appium+python自动化-启动app 环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity.获取这两个关键东西的方法很多,这里 ...

  5. ChromeDriver与Chrome版本对应关系及下载链接

    ChromeDriver与Chrome版本对应参照表及ChromeDriver下载链接 版本对应关系 下载链接 版本对应关系 Chrome Version ChromeDriver Version 8 ...

  6. 最新Chromedriver与Chrome版本对应参照表【附下载链接】

    看到网上基本没有最新的chromedriver与chrome的对应关系表,便整理了一份如下,希望对大家有用: Chromedriver与Chrome版本对应参照表[附下载链接] 对照表 下载链接 对照 ...

  7. Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解

    简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个 ...

  8. selenium之chromedriver与chrome版本映射表(最新版!)

    目录 chromedriver与chrome的对应关系表 geckodriver与Firefox版本映射表 谷歌浏览器官方下载: 火狐浏览器官方下载: 历史版本: chromedriver与chrom ...

  9. Appium+python自动化(一)- 环境搭建—上(超详解)

    简介 最近整理了一下自动化的东西,先前整理的python接口自动化已经接近尾声.即将要开启新的征程和篇章(Appium&python).那么首相的问题就是搭建环境了.好久没搭建环境又踩了不少坑 ...

最新文章

  1. 【推荐】大型网站图片服务器架构的演进
  2. HDOJ---1257 最少拦截系统[线性DP]+NYOJ---拦截导弹[输出最长单调子序列的长度]
  3. linux内核 task_struct 中自旋锁的应用
  4. python到底可以做什么-编程小白必看!Python到底能做什么?
  5. IE8 Beta2 AJAX 的更新篇之XDR(二)(IE8 Beta2 Hand-on Lab-XDR)
  6. 写在方法中的路由跳转
  7. Java 两线程交替打印奇偶数(一)
  8. 创建或更改表 tablename 失败_mysql 创建用户
  9. struct task_struct 结构分析 \linux-1.0\linux\include\linux\sched.h
  10. 谈谈Tensorflow的dropout
  11. AutoItLibrary安装和常见问题解决
  12. 硅谷对“元宇宙”一无所知
  13. Keras 开发你的第一个 Python 深度学习项目
  14. ACM竞赛入门,从零开始
  15. 进销存源码|ERP多仓库管理系统全开源php源码
  16. php关闭notice_php怎么关闭notice警告
  17. uni-app -- 小程序添加激励视频(字节-抖音小程序)
  18. 阿里云与华为USG防火墙IPSEC对接
  19. 重磅!中国首家互联网银行联手腾讯、华为各大APP,最高5万额度,疯狂提额100亿!!!...
  20. PLC型号的选择方法

热门文章

  1. 解决centos下缺少sasl.h的问题(#include <sasl/sasl.h>)
  2. Android:Android NDK项目中C++文件中打印日志
  3. Red and Black (找到一个标记一个)
  4. A_Pancers团队项目设计完善编码测试
  5. Git HEAD detached from XXX (git HEAD 游离) 解决办法
  6. 文件、文件夹操作(I)
  7. ajax方式表单拦截
  8. 也谈跨域数据交互解决方案
  9. IBM 2013策略发布:大数据和分析、云计算、企业移动、社交商务、智慧商务、智慧城市...
  10. 从Hadoop到ClickHouse,现代BI系统有哪些问题?如何解决?