Appium [已解决] 要切换成 webview 页面,必须设置 capabilities.setCapability ("automationName","Selendroid") 吗? - 详见 6 楼回复

Mr Wang · April 02, 2016 · Last by 小薇说测试 replied at March 13, 2019 · 3227 hits

在做webview跳转的时候,如果我设置capabilities.setCapability("automationName","Selendroid") 的时候,可以成功跳入webview页面,但是 设置capabilities.setCapability("automationName","Appium")的时候 却只有一个NATIVE_APP 的context,难道appium只有在selendroid模式下 才能切换到webview吗?

报错信息如图:

NATIVE_APP
[2016-04-02 21:03:40] [ERROR] 没有这个context:WEBVIEW_0
io.appium.java_client.NoSuchContextException: No such context found. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 87 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: host: 'DESKTOP-790N287', ip: '192.168.118.1', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.7.0_79'
Session ID: 2e2ff480-b825-415e-80de-30daf3eb88a5
Driver info: io.appium.java_client.android.AndroidDriver
共收到 14 条回复 时间 点赞

建议先看下 android webview 的大概知识。 Selendroid 进入 webview 的方式是通过js注入。而 Appium 本身是使用的 ChromeDriver 的方式。

Mr Wang #2 · April 02, 2016 作者

#1楼 @lihuazhang 那使用appium方式会只显示NATVIE_APP这个context吗?

#2楼 @young chromedriver 无法感知你的webview,就只能给你一个native

Mr Wang #4 · April 03, 2016 作者

#3楼 @lihuazhang 我试了下 如果设置appium 为automationName, appium为强制把webview转换成 安卓uiautomator viewer可识别的,简单的说 就是强制转换成 nativ_app ; 如果是selendroid ,那么 会有多个context,但是 是appium的话 就是一个native_app context.
不知道 理论上是不是这样的

在Chrome 的启用USB网络调试,设置不影响WebViews。要调试您的WebView的内容,您需要启用它在您的应用程序编程调用 setWebContentsDebuggingEnabled的WebView类的静态方法。

要切WEBVIEW,首先你要让开发给你把上面的方法设置好!!!

Mr Wang #6 · April 06, 2016 作者

#5楼 @stylenshain 多谢您 我今天也研究了半天 最后确认 setWebContentsDebuggingEnabled 这个参数没有设置成true

#6楼 @young 所以楼主最后的解决方法是,让开发把这个参数改为TRUE是么?

#6楼 @young 那请问这个参数最终是设在开发代码里,还是设在测试脚本里?我找我们开发问了一下,他们根本没人知道这个参数呀~急切需要知道这个问题的解决方法呀~

#5楼 @stylenshain 请问setWebContentsDebuggingEnabled一定要开发帮忙设么,我自己有没有办法设置,我用PYTHON写的脚本。。。

有没有办法不让开发改的?

#5楼 @stylenshain iOS app也出现类似问题,iOS也有这个设置么?

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

#6楼 @young 我发现微信的webview成了不解之迷,除过你好像没有其它解决成功的案例~所以请一定要赐教一下,我困死在这里好久了~如果可以的话加下我QQ:153388059

江门 回复

1.设置手机的talkback功能 设置-辅助设置-talkback 开启。手机没有这个功能可以再应用商店下一个安装完成。再次进入设置开启就可以了。

2.设置好以后再使用uiautomatorviewer 截屏 获取定位的元素 内嵌的webview 和 h5 都可以定位到了。

试试看这个呢

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up