在 Android 4.4 操作系统上测试混合应用时,可以直接顺利的在native模式和webview模式之间切换,但是在Android6.0 操作系统上却报NoSuchContextException 的异常,
百度了一下原因:
产生问题的原因:
在Android 5.0中有9个字段在引导时,但在Android 6.0中有8字段在引导时:
Android 5.0
USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a611 23802 188 1169748 133272 ffffffff 00000000 S com.XXX.XXX.XXX
Android 6.0
User PID PPID VSIZE RSS WCHAN PC NAME
u0_a178 6346 211 1724936 123260 00000000 R com.XXX.XXX.XXX
但几秒钟后有9个字段
USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a182 10156 211 1721024 111224 sys_epoll_ 00000000 S com.XXX.XXX.XXX
sys_epoll_字段在几秒钟后才可见
所以,当我们尝试获取webview中9个字段但是只有8个时,我们就得到一个“undefined”
解决方案:
只针对Android 6.0+的解决办法:
修改android-hybrid.js文件,在 pkg = line [pkgColumn]; 前面加上 pkgColumn = line.length - 1; 可以解决
路径:C:、Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-hybrid.js
改完之后,重启了一下apium 服务,果然好了。
也有一些其他原因造成上述的错误,比如context的名字确实错了等,还要具体分析。
---------------------
作者:Cara69
来源:****
原文:https://blog.****.net/xuecancan/article/details/69526086
版权声明:本文为博主原创文章,转载请附上博文链接!