Appium [已解决] Appium 下测试 Android 混合模式 APP,无法进入到 WEBVIEW

vv · 2015年11月29日 · 最后由 Alisawu 回复于 2016年01月20日 · 2074 次阅读

基本信息

环境:Android(hybird)+robotframework+appium+w8
版本:appium-1.4.0.0

实现功能

对 Android 内的 WEBVIEW 部分实现输入等操作,如图

问题

进入当前页面后,在 robotframework 里面用关键字 Get Contexts 获取可用的 context 只有 NATIVE_APP,也无法切换到 WEBVIEW 模式下,请教哪位知道原因?万分感激!

LOG

info: <-- GET /wd/hub/session/9fdcfc84-4767-4208-8714-1c7df1ae4eac/screenshot 200 1055.742 ms - 107518 {"status":0,"value":"iVBORw0KGgoAAAANSUhEUgAAAtAAAAUACAYAAABuzmU9AAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xd8k1UXwPFfnswuStmjyJK9tyzZewgyZIiIMhUQEEThlaEooCxFmTJkDwEVEVEQGQIyZCp779HS3ey8f9TElq6kTVuQ8/3IR5rc5z43JePkPueeqwoJCXEghBBCCCGEcIuS1QMQQgghhBDiSSIBtBBCCCGEEB6QAFoIIYQQQggPSAAthBBCCCGEBySAFkIIIYQQwgMSQAshhBBCCOEBCaCFEEIIIYTwgCarByA8o1KpUKvVKIqCSqUCwOFwYLfbXX+EEEIIIUTGkQD6CaBSqdBoNOj1erRareu2+ByOuP1wrFYrRqMRq9Xqui0zORwOVCoVDocDk8mEw+FI9zgcDgcBAQFERUWh1WrRarWu8wghhBBCZDaV7ET4+FIUBZ1Oh16vR61Wu4LR+EGpSqVK8MfJZrNhMpkwm82ZNivtcDgwm80EBATg7++fYeexWq08ePAg2S8TQgghhBAZSQLox5RWq8XHxweNRoPD4cBisbiCYbvdniCAVhQFtVrtmp2NH1BarVZiY2OxWCwZOl673U5sbCyFChXK0PPE53A4CAkJSfTlQQghhBAiI0kKx2NGpVKh0+nw8/MDUg+AnfnPVqsVk8mERqPB19cXjSbun1aj0RAQEEBMTIwrpcLbHA4HNpsNvV7v9b5TolKpiImJwcfHB7VanannFkIIIcTTSwLox4hKpcJgMGAwGLDb7RiNRo+DXqvVSmRkJHq9HoPBgKLEFVrx8fFBpVJhNBq9HkTb7XY0Gg1BQUFe7dcdBoMBq9WaYFFlRnA44GCYhRmXjBjtEGX1/Hfoq1bRMo+WgYUNqGXCXAghhHhiSQD9GNHpdBgMBlQqFVFRUWlOu3A4HK6FhP7+/jgcDtRqNQaDwXVfRsiKNIro6OhMmfne8cDMlAtGHo2bVYA7D9sBRFodrL9l...","sessionId":"9fdcfc84-4767-4208-8714-1c7df1ae4eac"}
info: --> GET /wd/hub/session/9fdcfc84-4767-4208-8714-1c7df1ae4eac/contexts {}
info: [debug] Getting a list of available webviews
info: [debug] executing cmd: "C:\Program Files\android-sdk-windows\platform-tools\adb.exe" -s 8b2242c1 shell "cat /proc/net/unix"
info: [debug] Available contexts:
info: [debug] []
info: [debug] Available contexts: NATIVE_APP
info: [debug] Responding to client with success: {"status":0,"value":["NATIVE_APP"],"sessionId":"9fdcfc84-4767-4208-8714-1c7df1ae4eac"}
info: <-- GET /wd/hub/session/9fdcfc84-4767-4208-8714-1c7df1ae4eac/contexts 200 115.125 ms - 86 {"status":0,"value":["NATIVE_APP"],"sessionId":"9fdcfc84-4767-4208-8714-1c7df1ae4eac"}
info: --> GET /wd/hub/session/9fdcfc84-4767-4208-8714-1c7df1ae4eac/contexts {}
info: [debug] Getting a list of available webviews
info: [debug] executing cmd: "C:\Program Files\android-sdk-windows\platform-tools\adb.exe" -s 8b2242c1 shell "cat /proc/net/unix"
info: [debug] Available contexts: NATIVE_APP

解决方法

webview 的 debug 开关未开启,找开发加一段代码即可 WebView.setWebContentsDebuggingEnabled(true)
PS:此方法好像只支持 4.4 及以上的系统

共收到 10 条回复 时间 点赞

是不是 webview 没开 debug

—— 来自 TesterHome 官方 安卓客户端

这个应该是非原生框架开发的,如果采用混合开发的 QT+QML 形式,就是目前这种情况。可用元素基本没有。

我现在也遇到了,同求解决方法,

vv #4 · 2015年12月07日 Author

@freelyroom1314 已解决,是 webviewdebug 开关没开

请问是如何打开 webviewdebug 权限的,我们公司的开发调用了 WebView.setWebContentsDebuggingEnabled(true); 这个静态方法,还是无法获取 webview

vv #6 · 2015年12月08日 Author

@kuan8848 只能在安卓 4.4 及以上系统才可以,看看是不是这个原因呢

想问下这个 Native 和 webview 切换的作用是什么

vv #3 · 2015年12月09日 Author

@tobe_nb 因为测试对象是 hybird app,测试原生的方法和对 webview 方法是不同的

#6 楼 @vv_0223 我确定是 4.4 以上的系统 麻烦你能把这个静态方法加在什么地方 告诉我么

uiautomator 获取页面元素中文乱码,机型安卓 5.0.2,请问能解决吗

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册