跳到主要内容

网页窗口 (WebWindow)

WebWindow 网页窗口

声明

node.web_window(url)

参数

参数类型是否必填说明
urlstring目标网页 URL 或 URL 片段

返回值

类型说明
WebWindowWeb 窗口对象,用于 WebSelector

说明

创建一个 Web 窗口对象,作为 WebSelector 查找网页控件的上下文。

技术原理:

Web 控件功能**完全基于 Android AccessibilityService(辅助功能服务)**实现:

  • WebView 控件会将其内部的 DOM 结构暴露给 AccessibilityService
  • 通过 AccessibilityService 可以获取到网页元素的标签、文本、属性等信息
  • 所有的查找和操作都是通过 AccessibilityService API 完成的
  • 不依赖 Chrome DevTools Protocol 或其他浏览器调试协议

工作流程:

  1. 通过 URL 匹配当前 AccessibilityService 节点树中的 WebView
  2. WebWindow 对象代表这个 WebView 的无障碍节点
  3. WebSelector 在这个 WebView 的子节点树中进行查找

使用场景:

  • 操作 App 内嵌的 H5 页面
  • 自动化 WebView 中的网页表单
  • 获取网页元素信息

注意事项:

  • URL 参数支持部分匹配
  • WebView 需要已加载完成
  • WebView 必须开启无障碍支持(大多数 App 默认开启)
  • 某些经过特殊处理的 App 可能禁用 WebView 的无障碍访问
待实现

该接口正在开发中。

示例

local node = require("node")

-- 创建 Web 窗口
local window = node.web_window("http://www.example.com")

-- 使用 WebSelector 查找控件
local n = node.web_selector(window):text("登录"):find()
if n then
n:click()
end

AScript 对应

# AScript (Python)
from ascript.android.ui import WebWindow
from ascript.android.node import WebSelector

window = WebWindow("http://www.example.com")
webselector = WebSelector(window)