在我们的 微信小程序 中,首页是原生的小程序页面,而后续所有页面都是通过 WebView(H5 页面)渲染的。
我尝试使用 Appium(配合 WebdriverIO) 以及 微信 miniprogram-automator(通过微信开发者工具) 来自动化该流程,但在自动化 WebView 页面 时遇到了问题。
在使用 Appium 时,原生小程序页面的自动化可以正常工作。但当应用跳转到 WebView 页面后,调用 getContexts() 或 getContext() 方法时,始终只返回 [NATIVE_APP]。WEBVIEW_com.tencent.mm 上下文从未出现,因此无法进行上下文切换,也无法与 WebView 中的元素进行交互。
另一方面,在使用 微信 miniprogram-automator 时,只能自动化 原生小程序页面。该工具 并不支持切换到 WebView 上下文,也 没有提供任何 API 来对小程序中 WebView 内渲染的 H5 页面执行 DOM 级别的操作。
因此:
- Appium 无法识别或切换到 WebView 上下文
- miniprogram-automator 未提供与 WebView 页面交互的能力
- 无法完成包含 WebView 页面在内的小程序完整用户流程自动化
目前我想确认的是:这是否是 微信 WebView 沙箱机制的技术限制,还是 自动化工具本身的限制,或者是否存在 官方推荐或支持的方式,用于自动化包含 WebView 页面的小程序。

不行