Appium切换webview时候报chromedriver版本问题
前言
用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must be >= 58.0.3029.0
(Driver info: chromedriver=2.30.477700 )
运行环境:
android 7.0
appium 1.7.1
appium里面chromedriver 2.28
webview版本 57.0
遇到问题
1.当执行switch_to.context('WEBVIEW_NAME')这句代码的时候,会报chrome浏览器和chromedriver不匹配,代码报错信息如下:
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: session not created exception: Chrome version must be >= 58.0.3029.0
(Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)
2.查看appium的日志,很显然是因为版本号不匹配导致的
{"sessionId":"54f24f2451884a7fdcc64fc6480c4a91","status":33,"value":{"message":"session not created exception: Chrome version must be >= 58.0.3029.0\n (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)"}}
[Chromedriver] Chromedriver exited unexpectedly with code null, signal SIGTERM
[Chromedriver] Changed state to 'stopped'
[Chromedriver] Unable to automate Chrome version because it is too old for this version of Chromedriver.
[Chromedriver] Please see 'https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/chromedriver.md'
[Chromedriver] Error: session not created exception: Chrome version must be >= 58.0.3029.0
3.那么问题来了,这个chrome版本到底是手机上chrome浏览器版本还是电脑上chrome浏览器版本,还是哪里的版本号呢?这个chromedriver又是哪的驱动版本?
查看webview版本号
1.以微信为例,webview的版本号可以用chrome浏览器查看到,由于微信用的是x5内核,跟其他app不太一样,这里需要先开启微信的debug模式
开启微信debug模式:在微信聊天界面输入:debugx5.qq.com,如何勾选"打开TBS内核Inspector调试功能

2.查看微信里面webview版本,直接在电脑chrome浏览器输入:chrome://inspect/#devices
再打开微信的公众号页面,刷新浏览器页面,就会出现webview版本号57.0

chromedrive下载
1.找到webview的chrome版本号了,接下来下载对应的chromedriver驱动包就可以了,57的webview对应2.28驱动
下载地址:chromedriver版本下载

2.chromedriver下载后应该放哪呢?首先找到报错里面的chromedriver=2.30.477700 版本是从哪里来的,替换掉就可以了。查找路径:\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win
找到后双击就能显示版本号,chromedriver=2.30.477700也就是报错里面看到的

备注:版本不一样,路径可能不太一样,自己搜索:appium-chromedriver
3.把刚才下载2.28版本的chromedriver.exe替换掉这个2.30版本就可以了
Appium切换webview时候报chromedriver版本问题的更多相关文章
- appium+python自动化41-切换webview时候报chromedriver版本问题
前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...
- robotframework:appium切换webview后,在webview里滑动屏幕
问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美 ...
- robotframework:appium切换webview后,在第一个页面操作成功,跳转到第二个页面后,执行命令失败
问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美 ...
- 解决appium自带的Chromedriver版本和设备Android System Webview版本不一致的问题
报错信息 selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred w ...
- Appium Hybrid混合应用测试——Native切换WebView
Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...
- Appium 学习二:切换Webview
由于测试的APP是混合应用,即包含了原生代码和web网页. 混合应用在应用程序中嵌入了Webview,Webview是用来访问网页的一个控件.Webview内核也分为原生和第三方(比如腾讯X5内核) ...
- Appium Hybrid混合应用测试——Native切换WebView , 切换不了WebView (没有试过,先记录在此)
Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...
- appium自动化webview时遇到的chromedriver问题
安卓app里面的网页,基本上都是使用手机系统上的webview 去显示的. 安卓 webview 可以看成是 手机上的 chrome 浏览器精简版. appium desktop 里面内置了 用于 w ...
- Appium 解决微信公众号、小程序切换 webview 后无法定位元素的问题
如何切换webview进入小程序请参考https://testerhome.com/topics/12003 脚本思路:进入webview后会存在多个handle同Web页签一样,获取所有的handl ...
随机推荐
- JS脚本不能执行
这段时间在做前端的动态页面,出了很多问题,因为js平时用的很少,所以花了不少无用功. 其中有两点一定要注意: 1.当js中有语法错误时,js脚本会无法执行. 2.当js脚本中有未定义的变量时,后边的语 ...
- javaScript中的严格模式 (译)
“use strict”状态指示浏览器使用严格模式,是javaScript中一个相对少且安全的特征集. 特征列表(非完全列举) 不允许定义全局变量.(捕获没有用var声明的变量和变量名的拼写错误) 在 ...
- javaScript中的闭包原理 (译)
这篇文章通过javaScript代码解释了闭包的原理,来让编程人员理解闭包.它不是写给大牛或使用功能性语言进行编程的程序员的.一旦意会了其核心概念,闭包理解起来并不难.然而,你不可能通过阅读任何有关闭 ...
- 《深入理解JavaScript闭包和原型》笔记
By XFE-堪玉 以下知识来源于对王福朋所写<深入理解javascript原型和闭包>的理解和整理 一切都是对象[引用类型],对象都是通过函数创建的[Funcion类型] 对象是属性的集 ...
- winform重绘
1.重绘文字#多行文字a.先定义一个矩形 Rectangle p1 = , , , this.Height); Rectangle p2 = , , , this.Height); Rectangle ...
- selenium的定位
id定位 find_element_by_id()方法通过id来定位元素 例如: find_element_by_id("kw") find_element_by_id(&quo ...
- htmlunit爬取js异步加载后的页面
直接上代码: 一. index.html 调用后台请求获取content中的内容. <html> <head> <script type="text/javas ...
- 校内选拔I题题解 构造题 Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2) ——D
http://codeforces.com/contest/574/problem/D Bear and Blocks time limit per test 1 second memory limi ...
- Android(java)学习笔记142:Android中补间动画(Tween Animation)
本文主要简单介绍补间动画使用代码实现, 关于使用xml实现补间动画, 可以参看:自定义控件三部曲之动画篇(一)——alpha.scale.translate.rotate.set的xml属性及用法 1 ...
- CPP-基础:关于内存分配
1:c中的malloc和c++中的new有什么区别 (1)new.delete 是操作符,可以重载,只能在C++中使用.(2)malloc.free是函数,可以覆盖,C.C++中都可以使用.(3)ne ...