环境:Android 6.0.1+appium 1.4.16.1
在上面环境中执行微信公众号中的H5测试,发现driver.available_contexts 有时候返回:webview_undefined,有时候返回:com.tencent.mm:tools
只针对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产生问题的原因:
在Android 5.0中有9个字段在引导时,但在Android 6.0中有8字段在引导时:Android 5.0USER PID PPID VSIZE RSS WCHAN PC NAMEu0_a611 23802 188 1169748 133272 ffffffff 00000000 S com.XXX.XXX.XXXAndroid 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.XXXsys_epoll_字段在几秒钟后才可见
所以,当我们尝试获取webview中9个字段但是只有8个时,我们就得到一个“undefined”