跳到主要内容

网页控件查找器 (WebSelector)

WebSelector 网页控件查找器

声明

node.web_selector(window)

参数

参数类型是否必填说明
windowWebWindowWeb 窗口对象

返回值

类型说明
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)