在 appium 传递参数过程总需要传递 appPackage 和 appActivity
获取方式,打开你想要测试的 app
adb shell "dumpsys window w|grep \/|grep name=|sed 's/mSurface=Surface(name=//g'|sed 's/)//g'|sed 's/ //g'"
如果参数传递不对 会导致 app 无法启动
chromedriver 是实现 WebDriver 有线协议的一个单独的服务,有了 chromedriver,selenium 才可以执行一些相关操作。因此 chromedriver 的版本问题一定要对应好。
这里的版本问题是指,这一点非常重要:
appium 中的 chromedriver 版本问题 与 被测 app 的 chrome 版本问题相一致
chrome 与 chromedriver 对应关系版本映射表如下 blogselenium 之 chromedriver 与 chrome 版本映射表(更新至 v2.40)
cd /usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac
chromedriver 打开后即可获取到当前版本。从 appium 日志中获得
命令行查看
/usr/local/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/mac/chromedriver --url-base=wd/hub --port=8000 --adb-port=5037 --verbose
chromedriver 下载地址:chromedriver 下载
经常会发现如下报错
Encountered internal error running command: Error: Failed to start Chromedriver session: A new session could not be created. (Original error: session not created exception: Chrome version must be >= 60.0.3112.0
错误中说到 chrome 版本问题 在网上查说是系统的一个版本 Android System Weview 版本不对,需要升级,查看该 app 的版本方式
adb shell dumpsys package com.google.android.webview | grep versionName
*** 升级后 发现仍然不对,我的手机已经显示 android system webview 版本是 60 了,但是 appium 日志中仍然报错如上
后来通过查看 appium 源码发现了问题 appium 找的版本号并不是手机上的 android system webview 版本号 而是被测 app 的 chrome 版本号。
也就是说你要测的 app chrome 是 51 版本,那么就应该按照 chrome 和 chromedriver 的对应关系对 chromedriver 进行降级![个人想法,如有错误还请指出]
也就说当你测试不同 app 的 Webview 时 所需要的 chromedriver 可能是需要变化的。
appium 断点内容
appium 源码
基本上在切换 webview 时遇到的就是这个问题了~记录一下。
在网上查到的都是给 Android System Webview 升级 但是我这边升级之后并没有什么作用。以上是个人使用 WebView 的记录,如有错误还请指出。