专栏首页从零开始学自动化测试appium+python自动化57-chromedriver与chrome版本

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

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Selenium2+python自动化61-Chrome浏览器(chromedriver)

    前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动...

    上海-悠悠
  • Locust性能测试1-环境准备与基本使用

    提到性能测试,大部分小伙伴想到的就是LR和jmeter这种工具,小编一直不太喜欢写这种工具类的东西,我的原则是能用代码解决的问题,尽量不去用工具。 python...

    上海-悠悠
  • python测试开发django-68.templates模板标签{% for %}

    有些标签类似这样:{% tag %} ,需要开始和结束标签 例如:{% tag %} …标签 内容 … {% endtag %},一般用于循环列表对象输出内容。

    上海-悠悠
  • [035] onStop提前投放问题

    最近遇到一个奇葩的问题,应用X的Activity1中点击一个Button跳转到Activity2,手机A比手机B上快500ms左右,虽然手机A比手机B的配置高,...

    王小二
  • 【大牛经验】程序员想弄死产品经理的原因

    程序员想弄死产品经理的原因 你=用户 服务员=产品经理 大厨=程序员 你去饭店,坐下来。 你:给我来份宫保鸡丁! 服务员:好嘞! ☝这叫原始需求 大...

    Java帮帮
  • 程序员想抡死产品经理的真正原因!

    你=用户 服务员=产品经理 大厨=程序员 你去饭店,坐下来。 你:给我来份宫保鸡丁! 服务员:好嘞! ☝这叫原始需求 大厨做到一半 你:菜里不要放肉。 服务员:...

    用户1667431
  • 游戏主机完全选购指南:2018 版

    Zip
  • 【大牛经验】程序员想弄死产品经理的原因

    程序员想弄死产品经理的原因 你=用户 服务员=产品经理 大厨=程序员 你去饭店,坐下来。 你:给我来份宫保鸡丁! 服务员:好嘞! ☝这叫原始需求 大...

    Java帮帮
  • 20个堪称神器的Linux命令行软件

    3.mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。

    昱良
  • 仿抖音短视频APP源码,AES加密工具类封装

    以上就是仿抖音短视频APP源码,AES加密工具类封装相关的代码, 更多内容欢迎关注之后的文章

    yunbaokeji柯基

扫码关注云+社区

领取腾讯云代金券