参考教程
- 环境:
appium 1.7.2
Mac OS
Android 7.0
python 2.7 - 参考地址:https://testerhome.com/topics/6954
如何获取app的Package&Activity
在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无法启动
报错Chrome version must be >= xx
chromedriver是实现WebDriver有线协议的一个单独的服务,有了chromedriver,selenium才可以执行一些相关操作。因此chromedriver的版本问题一定要对应好。
这里的版本问题是指,这一点非常重要:
appium中的chromedriver版本问题 与 被测app的chrome版本问题相一致
chrome与chromedriver对应关系版本映射表如下blogselenium之 chromedriver与chrome版本映射表(更新至v2.40)
chromedriver版本号获取方式
- 从具体路径获得
我们需要知道appium中的chromedriver
appium中路径[mac环境]:
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下载
chrome版本号查看
经常会发现如下报错
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的记录,如有错误还请指出。