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

python自动化全栈课程7月开学,现在开始可以报名了

本期课程截止时间:2018-06-30

《python自动化测试全栈》课程-(7/8/9)3个月

(0)

相关推荐

  • selenium以及驱动安装

    mac用户,视频可以不看,直接用课程的一键安装方法! https://localprod.pandateacher.com/python-manuscript/crawler-html/chromed ...

  • Terminal怎么停止VUE项目

    开启vue项目不关闭的后果 问题描述:新手使用idea或webstorm工具开发vue,使用Terminal命令行npm run dev 运行项目,无法输入命令关闭比项目解决方案:打开Terminal ...

  • vue安装和使用

    首先这里记录的是基于安装node.js 的npm安装vue  如果你不是用的node与npm  那就不必往下看了 1.安装node.js这个不多说   百度有很多 2.安装webpack 全局安装we ...

  • appium+python自动化43-切换webview时候报chromedriver版本问题

    前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...

  • Appium+python自动化9-SDK Manager

    前言 SDK Manager到有哪些东西是必须安装的呢? 一.SDK Manager 1.双击打开SDK Manager界面 2.Tools里面前三个是必须下载的 --Android SDK Tool ...

  • Appium+python自动化10-AVD 模拟器

    前言 有些小伙伴没android手机,这时候可以在电脑上开个模拟器玩玩 一.模拟器配置 1.双击启动AVD Manager,进入配置界面 2.点Create按钮创建 3.配置模拟器基本信息 --AVD ...

  • Appium+python自动化11-adb必知必会

    前言 学android测试,adb是必学的,有几个常用的指令需要熟练掌握 一.检查设备 1.如何检查手机(或模拟器)是连上电脑的,在cmd输入: >adb devices 2.一定要看到上图红色 ...

  • Appium+python自动化12-appium元素定位

    前言 appium定位app上的元素,可以通过id,name.class这些属性定位到 一.id定位 1.appium的id属性也就是通过UI Automator工具查看的resource-id属性 ...

  • Appium+python自动化13-native和webview切换

    前言 现在大部分app都是混合式的native+webview,对应native上的元素通过uiautomatorviewer很容易定位到,webview上的元素就无法识别了. (手机上要先装个百度阅 ...

  • Appium+python自动化14-查看webview上元素(DevTools)

    前言 app上webview的页面实际上是启用的chrome浏览器的内核加载的,如何把手机的网页加载到电脑上,电脑的chrome浏览器上有个开发模式,是可以方便调试的. 一.环境准备 1.手机上装一个 ...

  • Appium+python自动化15-Mac上环境搭建

    前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client ...

  • Appium+python自动化16-启动ios上Safari浏览器

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了.本篇介绍如何用appium启动ios上的safari浏览器,然后可以用手机上浏览器做w ...