概述
1、打开app内webview调试模式
app代码里在WebView类中调用静态方法setWebContentsDebuggingEnabled:
webView.setWebContentsDebuggingEnabled(true);
2、打印出当前手机页面的context
print driver.contexts
如果包含有h5页面的话,一般至少会返回两个元素,一个'NATIVE_APP', 一个'WEBVIEW'
3、切换到H5页面
driver.switch_to.context('WEBVIEW')
或
driver.execute(MobileCommand.SWITCH_TO_CONTEXT, {"name": "WEBVIEW_com.app.qunadai"})
查看是否切换成功
print driver.current_context
接下来h5页面操作同web测试一样
4、切回原生app
driver.switch_to.context('
NATIVE_APP')
5、
Chrome调试Webview
无论是调试Web页面还是调试Hybrid混合应用,只要是调试Android的webview,都需要使用Chrome://inspect进行调试。但是国内开发者会出现404 Not Found错误,解决方法有两种:
- 最直接的方法:FQ。翻墙最大的问题免费的不稳定,按月收费又太浪费。
- 推荐使用离线开发者调试工具包(支持windows/mac/linux),再也不用到处找出口了
注意:
1、
手机上的webview版本与appium中的chromedriver要对应,可以在手机上设置--应用--全部,找android system webview 这个,查看webview版本,然后找对应的chromedriver版本。
2、driver.contexts结果为WEBVIEW_undefined
只针对Android 6.0+的解决办法:
修改android-hybrid.js文件,在 pkg = line [pkgColumn]; 前面加上 pkgColumn = line.length - 1; 可以解决
路径:C:、Program Files (x86)Appiumnode_modulesappiumlibdevicesandroidandroid-hybrid.js
产生问题的原因:
在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”
最后
以上就是甜蜜大山为你收集整理的python+appium 混合app处理的全部内容,希望文章能够帮你解决python+appium 混合app处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复