强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面

时间:2024-04-01 22:42:10

在使用appnium 测试app的内嵌H5页面时,发现定位不到里面的元素,它是被一个大的webview所包裹,需要先切换进webview中 ,然后就像测试web端一样定位元素,才能测试,但在使用contexts方法获取上下文时,发现只能获取NATIVE_APP 这个一个上下文,获取不到webview的,这是因为开发并没有将webview的debug模式打开,而开启这个模式还需要开发加代码打包,测试环境下还可以,但如果包要上线到正式环境下,再打开debug模式,就存在一定的安全隐患,所以在测试过程中,最好的方法 还是我们在拿到包后,自己强制将包的webview debug 模式打开。
下面进入正题:

1.root

首先需要先将测试手机进行 root 操作,如果不想root的话 可以使用模拟器(推荐mumu模拟器)个人感觉比较友好—我这边使用的也是模拟器

2.安装xposed框架

这个app大家可以在百度上下载,或者直接下载我提供的这个
百度网盘: 链接:https://pan.baidu.com/s/12cQqrPy5XBP-KT0xNj_OYQ
提取码:3xu3
下载安装完成后 会提示未安装框架,只需要点install 下载一下就可以 下载完成后使用root权限才可以安装强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面

3.安装xposed webview debugging模块

这个模拟的app包我也已经在网盘里面提供,下载到手机或模拟器中即可
在安装完这模块后,需要到它的模块中 勾选一下
强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面
强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面
勾选完成后,这时 就已经开启了大部分app的 webview debug 调试功能

5.验证

安装完成后,我们来验证一下是否可以识别app中的内嵌webview
先配置appnium 的模拟器路径
强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面
之后再使用 adb connect 连接模拟器
强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面
连接成功后 运行我们的 python代码
(这里进入内嵌H5界面后 我们使用contexts 来打印一下有几个 上下文 默认情况没有开启debug 时 只会出现一个NATIVE_APP)
强制开启app的webview debug ----使用appnium 测试app 中的内嵌H5页面
我们可以发现这有俩个上下文,在没有改app内部代码的情况下,我们也是可以定位到它的内嵌H5 页面的,在定位到后,我们先切换进去,进去后就像操作web页面一下操作app中的内嵌H5页面 (可以使用谷歌的chrome://inspect 来查看页面的元素排序 )