UI节点操作相关
javascript
const core = require('cheese-js');
const UiNode = core.uinode;
const node = new UiNode();
构造函数: constructor(uiNode?: any)
✅
参数:
any
(uiNode): 可选,内部UI节点对象
用法示例:
javascript
const core = require('cheese-js');
const UiNode = core.uinode;
const node = new UiNode();
获取节点唯一标识: uid(): string
✅
返回:
string
: 节点UID
用法示例:
javascript
const uid = node.uid();
console.log(`节点UID: ${uid}`);
查找UI节点: find(selector: string): uinode
✅
参数:
- ⭐
string
(selector): 选择器
返回:
uinode
: 找到的UI节点实例
用法示例:
javascript
const selector_json = JSON.stringify({
"Name": "商城", "Type": "Button"
})
const foundNode = node.find(selector_json );
console.log('节点查找完成');
获取页面源码: source(): string
✅
返回:
string
: 页面源码
用法示例:
javascript
const source = node.source();
console.log(`页面源码: ${source}`);
点击元素: click(): boolean
✅
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.click();
console.log(`点击结果: ${result}`);
双击元素: double_tap(): boolean
✅
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.double_tap();
console.log(`双击结果: ${result}`);
长按元素: touch_and_hold(duration: number): boolean
✅
参数:
- ⭐
number
(duration): 持续时间(秒)
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.touch_and_hold(2);
console.log(`长按结果: ${result}`);
双指点击: two_finger_tap(): boolean
✅
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.two_finger_tap();
console.log(`双指点击结果: ${result}`);
多次点击: tap_with_number_of_taps(numberOfTaps: number, numberOfTouches: number): boolean
✅
参数:
- ⭐
number
(numberOfTaps): 点击次数 - ⭐
number
(numberOfTouches): 手指数量
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.tap_with_number_of_taps(3, 1);
console.log(`多次点击结果: ${result}`);
压力触摸: force_touch(pressure: number, duration: number): boolean
✅
参数:
- ⭐
number
(pressure): 压力值 - ⭐
number
(duration): 持续时间(秒)
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.force_touch(0.8, 1);
console.log(`压力触摸结果: ${result}`);
在指定位置压力触摸: force_touch_float(x: number, y: number, pressure: number, duration: number): boolean
✅
参数:
- ⭐
number
(x): X坐标 - ⭐
number
(y): Y坐标 - ⭐
number
(pressure): 压力值 - ⭐
number
(duration): 持续时间(秒)
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.force_touch_float(100, 200, 0.8, 1);
console.log(`指定位置压力触摸结果: ${result}`);
向元素发送文本: send_keys_to_element(text: string, frequency: number): boolean
✅
参数:
- ⭐
string
(text): 要发送的文本 - ⭐
number
(frequency): 输入频率
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.send_keys_to_element('Hello World', 50);
console.log(`文本输入结果: ${result}`);
清除元素内容: clear_element(): boolean
✅
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.clear_element();
console.log(`清除内容结果: ${result}`);
拖动元素: drag_element(fromX: number, fromY: number, toX: number, toY: number, duration: number): boolean
✅
参数:
- ⭐
number
(fromX): 起始X坐标 - ⭐
number
(fromY): 起始Y坐标 - ⭐
number
(toX): 目标X坐标 - ⭐
number
(toY): 目标Y坐标 - ⭐
number
(duration): 持续时间(秒)
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.drag_element(0, 0, 100, 100, 1);
console.log(`拖动元素结果: ${result}`);
拖动元素(浮点坐标): drag_float(fromX: number, fromY: number, toX: number, toY: number, duration: number): boolean
✅
参数:
- ⭐
number
(fromX): 起始X坐标 - ⭐
number
(fromY): 起始Y坐标 - ⭐
number
(toX): 目标X坐标 - ⭐
number
(toY): 目标Y坐标 - ⭐
number
(duration): 持续时间(秒)
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.drag_float(0.1, 0.1, 0.9, 0.9, 1.5);
console.log(`浮点拖动结果: ${result}`);
滑动元素: swipe_element(fromX: number, fromY: number, toX: number, toY: number): boolean
✅
参数:
- ⭐
number
(fromX): 起始X坐标 - ⭐
number
(fromY): 起始Y坐标 - ⭐
number
(toX): 目标X坐标 - ⭐
number
(toY): 目标Y坐标
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.swipe_element(100, 200, 300, 200);
console.log(`滑动元素结果: ${result}`);
滑动元素(浮点坐标): swipe_float(fromX: number, fromY: number, toX: number, toY: number): boolean
✅
参数:
- ⭐
number
(fromX): 起始X坐标 - ⭐
number
(fromY): 起始Y坐标 - ⭐
number
(toX): 目标X坐标 - ⭐
number
(toY): 目标Y坐标
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.swipe_float(0.2, 0.5, 0.8, 0.5);
console.log(`浮点滑动结果: ${result}`);
按方向滑动: swipe_direction(direction: number, velocity: number): boolean
✅
参数:
- ⭐
number
(direction): 方向 - ⭐
number
(velocity): 速度
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.swipe_direction(1, 500);
console.log(`方向滑动结果: ${result}`);
捏合手势: pinch(scale: number, velocity: number): boolean
✅
参数:
- ⭐
number
(scale): 缩放比例 - ⭐
number
(velocity): 速度
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.pinch(0.5, 100);
console.log(`捏合手势结果: ${result}`);
缩小手势: pinch_to_zoom_out(scale: number): boolean
✅
参数:
- ⭐
number
(scale): 缩放比例
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.pinch_to_zoom_out(0.8);
console.log(`缩小手势结果: ${result}`);
旋转手势: rotate(rotation: number, velocity: number): boolean
✅
参数:
- ⭐
number
(rotation): 旋转角度 - ⭐
number
(velocity): 速度
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.rotate(90, 50);
console.log(`旋转手势结果: ${result}`);
选择滚轮选项: picker_wheel_select(order: number, offset: number): boolean
✅
参数:
- ⭐
number
(order): 顺序 - ⭐
number
(offset): 偏移量
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.picker_wheel_select(1, 2);
console.log(`滚轮选择结果: ${result}`);
通过名称滚动到元素: scroll_to_element_by_name(name: string): boolean
✅
参数:
- ⭐
string
(name): 元素名称
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.scroll_to_element_by_name('Submit Button');
console.log(`滚动到元素结果: ${result}`);
通过谓词滚动到元素: scroll_to_element_by_predicate(predicate: string): boolean
✅
参数:
- ⭐
string
(predicate): 谓词表达式
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.scroll_to_element_by_predicate('name == "Submit"');
console.log(`谓词滚动结果: ${result}`);
滚动到可见: scroll_to_visible(): boolean
✅
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.scroll_to_visible();
console.log(`滚动到可见结果: ${result}`);
按方向滚动: scroll_direction(direction: number, distance: number): boolean
✅
参数:
- ⭐
number
(direction): 方向 - ⭐
number
(distance): 距离
返回:
boolean
: 操作是否成功
用法示例:
javascript
const result = node.scroll_direction(1, 100);
console.log(`方向滚动结果: ${result}`);
查找子元素: find_child_element(selectorJSON: string): string
✅
参数:
- ⭐
string
(selectorJSON): 选择器JSON
返回:
string
: 子元素信息
用法示例:
javascript
const childInfo = node.find_child_element('{"type": "button"}');
console.log(`子元素信息: ${childInfo}`);
查找多个子元素: find_child_elements(selectorJSON: string): string
✅
参数:
- ⭐
string
(selectorJSON): 选择器JSON
返回:
string
: 子元素信息列表
用法示例:
javascript
const childrenInfo = node.find_child_elements('{"type": "button"}');
console.log(`子元素列表: ${childrenInfo}`);
查找可见单元格: find_visible_cells(): string
✅
返回:
string
: 可见单元格信息
用法示例:
javascript
const cells = node.find_visible_cells();
console.log(`可见单元格: ${cells}`);
获取元素矩形信息: get_element_rect(): string
✅
返回:
string
: 元素矩形信息
用法示例:
javascript
const rect = node.get_element_rect();
console.log(`元素矩形: ${rect}`);
获取元素位置: get_element_location(): string
✅
返回:
string
: 元素位置信息
用法示例:
javascript
const location = node.get_element_location();
console.log(`元素位置: ${location}`);
获取元素大小: get_element_size(): string
✅
返回:
string
: 元素大小信息
用法示例:
javascript
const size = node.get_element_size();
console.log(`元素大小: ${size}`);
获取元素文本: get_element_text(): string
✅
返回:
string
: 元素文本
用法示例:
javascript
const text = node.get_element_text();
console.log(`元素文本: ${text}`);
获取元素类型名称: getElementTypeName(): string
✅
返回:
string
: 元素类型名称
用法示例:
javascript
const typeName = node.getElementTypeName();
console.log(`元素类型: ${typeName}`);
检查元素是否启用: is_enabled(): boolean | null
✅
返回:
boolean | null
: 是否启用(可能返回null)
用法示例:
javascript
const enabled = node.is_enabled();
console.log(`元素是否启用: ${enabled}`);
检查元素是否显示: is_displayed(): boolean | null
✅
返回:
boolean | null
: 是否显示(可能返回null)
用法示例:
javascript
const displayed = node.is_displayed();
console.log(`元素是否显示: ${displayed}`);
检查元素是否被选中: is_selected(): boolean | null
✅
返回:
boolean | null
: 是否被选中(可能返回null)
用法示例:
javascript
const selected = node.is_selected();
console.log(`元素是否被选中: ${selected}`);
检查元素是否可访问: is_accessible(): boolean | null
✅
返回:
boolean | null
: 是否可访问(可能返回null)
用法示例:
javascript
const accessible = node.is_accessible();
console.log(`元素是否可访问: ${accessible}`);
检查元素是否是辅助功能容器: is_accessibility_container(): boolean | null
✅
返回:
boolean | null
: 是否是辅助功能容器(可能返回null)
用法示例:
javascript
const isContainer = node.is_accessibility_container();
console.log(`是否为辅助功能容器: ${isContainer}`);
获取元素属性: get_element_attribute(attributeName: string): string
✅
参数:
- ⭐
string
(attributeName): 属性名称
返回:
string
: 属性值
用法示例:
javascript
const value = node.get_element_attribute('value');
console.log(`属性值: ${value}`);
获取元素UID: get_element_uid(): string
✅
返回:
string
: 元素UID
用法示例:
javascript
const uid = node.get_element_uid();
console.log(`元素UID: ${uid}`);
获取元素截图: take_element_screenshot(): string
✅
返回:
string
: 截图base64数据
用法示例:
javascript
const screenshot = node.take_element_screenshot();
console.log(`截图数据长度: ${screenshot.length}`);
清除元素缓存: clear_element_cache(): void
✅
返回:
void
: 无返回值
用法示例:
javascript
node.clear_element_cache();
console.log('元素缓存已清除');