Appium 使用 安卓 UIautomatorviewer,识别同一个 android.webkit.WebView 页面,dump2 次,dump 出来的节点信息不一致。好奇怪。.

Jhon · 2017年04月14日 · 最后由 雨凡 回复于 2017年04月18日 · 3813 次阅读

1 第一次 dump

2 第二次 dump

第一次 dump 是我运行完 case 立刻去 dump,发现能找到完整元素。
第二次 dump 是我隔了一段时间,去 dump 发现很多元素都找不到。

说明:这种情况遇到了不止一次。对于 android.webkit.WebView 这样的控件。
这个是我在回归运行 case 的时候发现的,以前都是可以识别出来的控件。现在发现识别不了,我就去 bump,发现的确找不到元素的 id。。因为第二张 dump 出来的信息不完整

有人遇到相同的情况不??

共收到 7 条回复 时间 点赞
Jhon #1 · 2017年04月14日 Author

有没有人有相同的情况呀,这导致我很多 case 都运行不了呀

#1 楼 @Jhon 这个问题遇到过的,猜测是 webview 会有本地化成 view 的动作,但是一般需要用脚本执行才会触发,所以出现执行完 case,dump 信息比较多,直接在这个页面 dump,拿不到 webview 的信息,但不是必然的,你可以用 adb shell uiautomator dump 命令试下取出生成的 xml 文件,里面其实也是有很多信息的。

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

Jhon #3 · 2017年04月14日 Author
Crazyerick 回复

你解释的还比较清楚,我这些 case 是因为之前拿到了 dump 信息才执行通过,现在拿不到了。。这么不稳定,肯定需要解决,不然 case 写的 没有意义,能请教下 你是怎么解决的嘛?

#3 楼 @Jhon 这个是 uiautomator 本身的限制,本来就不支持 webview 的,估计暂时解决不了,要不就换 appium 框架试试吧!

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

Jhon #5 · 2017年04月18日 Author
Crazyerick 回复

appium 是可以测 webview 的。只是我不知道怎么破。哈哈哈。。
看网上说什么切换上下文,我进入到 webview ,上下文还是 nativeapp.
又看网上说要打开什么调试开关,打开后,进入到 webview ,上下文还是 nativeapp.
所以就一脸懵比。。。。
有没有谁能提供一篇比较好的 appium 测试 webview 的文章。。。。

Jhon #6 · 2017年04月18日 Author

一脸懵比。。。。。。。。。。。。。

Jhon 回复

如果确定是 webview 页面,获取上下文还是 nativeapp 的话,应该还是没有开 webview 页面的 debug 权限
让开发加上这句试试 webView.setWebContentsDebuggingEnabled(true);

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