网页控件查找器 (WebSelector)
WebSelector 网页控件查找器
声明
node.web_selector(window)
参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| window | WebWindow | 是 | Web 窗口对象 |
返回值
| 类型 | 说明 |
|---|---|
| WebSelector | 网页控件查找器对象 |
说明
创建一个网页控件查找器,用于在指定的 WebWindow 中查找网页元素。
技术原理:
WebSelector 基于 Android AccessibilityService 实现网页控件查找:
- WebView 会将 DOM 结构暴露为 AccessibilityNodeInfo 节点树
- WebSelector 在这个节点树中根据约束条件进行匹配
- 支持的属性(tag、text、value、attributes)都来自 AccessibilityService 提供的信息
支持的约束方法:
tag(str)- 标签约束(div, a, span 等),支持正则text(str)- 文本约束,支持正则value(str)- 值约束(input, select 等),支持正则attr(key, val)- 属性约束,val 支持正则
正则表达式格式: 使用 /正则表达式/ 格式(JS 正则语法)
支持的关系约束:
child(...)- 子元素,支持多参数如child(1, 3)brother(...)- 兄弟元素,支持0.1(下一个)-0.1(上一个)parent(...)- 父元素,支持多参数如parent(1, 3)
支持的动作约束:
click()- 点击long_click()- 长按input(text)- 输入文本
查找方法:
find()- 查找第一个满足条件的控件find_all(num)- 查找所有满足条件的控件
待实现
该接口正在开发中。
示例
local node = require("node")
local window = node.web_window("http://www.example.com")
local selector = node.web_selector(window)
-- 链式调用
local n = selector:tag("div"):text("登录"):find()
AScript 对应
# AScript (Python)
from ascript.android.node import WebSelector
from ascript.android.ui import WebWindow
window = WebWindow("http://www.example.com")
webselector = WebSelector(window)