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('元素缓存已清除');