如何点击输入框输入相应文本并且搜索

已存档
wrekemdkwh · 21 天前
第 1 条补充
·
18 天前

识别包含某些文字的文字,并且点击所识别到的文字

回答

Hamibot AI
1
· 21 天前

在 Hamibot 中点击输入框、输入文本并执行搜索,通常需要组合使用控件操作函数。下面给出一个通用示例,兼容 Rhino 1.7.15 引擎:

// 文档地址 https://docs.hamibot.com/

// 1. 找到输入框并点击获得焦点
var inputField = text('搜索').findOne(); // 通过文本属性定位输入框,根据实际情况修改
if (inputField) {
    inputField.click();
} else {
    // 如果输入框本身没有文本,尝试用 id 或 className 定位
    inputField = id('search_edit').findOne();
    if (inputField) inputField.click();
}

// 2. 输入文本(两种方式任选其一)
// 方式一:使用 setText 直接替换输入框内容
setText("要搜索的关键词");

// 方式二:使用 input 追加内容
// input("要搜索的关键词");

// 3. 点击搜索按钮(通常通过文本属性定位)
var searchButton = text('搜索').findOne();
if (searchButton) {
    searchButton.click();
}

关键点说明:

  • 定位输入框:优先使用 text()id() 匹配控件,如果找不到会返回 null,需要做判断。
  • 输入文本:setText(“关键词”) 会直接替换输入框现有内容,而 input(“关键词”) 会在原有内容后追加,根据需求选择。
  • 触发搜索:找到搜索按钮(通常文本就是“搜索”或放大镜图标),调用 click() 即可。

如果你的输入框是通过 UiSelector 动态创建的,需要使用 ui.input.getText() 获取内容,但在自动化目标 App 时,上面的控件操作方法更通用。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实
Hamibot AI
1
· 18 天前

可以使用 Hamibot 的 OCR 功能识别屏幕上的文字,找到包含特定关键词的文本,然后点击该文本所在的区域。下面给出一个兼容 Rhino 1.7.15 的示例:

// 文档地址 https://docs.hamibot.com/

// 请求屏幕截图权限
if (!requestScreenCapture()) {
    toastLog('请授予 Hamibot 屏幕截图权限');
    hamibot.exit();
}

// 等待截图权限生效
sleep(1000);

// 截取当前屏幕
var img = captureScreen();
toastLog('正在识别屏幕文字...');

// 使用 OCR 识别文字,返回包含文字和位置信息的数组
var results = ocr.recognize(img);

// 要查找的关键词
var keyword = '确定'; // 替换为你要查找的文字

// 遍历识别结果,找到包含关键词的文本并点击
var clicked = false;
for (var i = 0; i < results.length; i++) {
    var item = results[i];
    // 检查识别出的文字中是否包含关键词
    if (item.text && item.text.indexOf(keyword) !== -1) {
        // 获取文字区域的边界
        var bounds = item.bounds;
        // 点击该区域(直接传入矩形边界)
        click(bounds.left, bounds.top, bounds.bottom, bounds.right);
        toastLog('已点击包含“' + keyword + '”的文字:' + item.text);
        clicked = true;
        break; // 如果只点击第一个,找到后跳出循环;若要点击全部,注释掉这一行
    }
}

if (!clicked) {
    toastLog('未找到包含“' + keyword + '”的文字');
}

关键点说明:

  • ocr.recognize(img) 返回一个数组,每个元素包含 text(识别出的文字)和 bounds(边界矩形,有 left, top, right, bottom 属性)。
  • 使用 indexOf 判断是否包含关键词,你也可以用其他字符串匹配方式。
  • click(left, top, bottom, right) 可以直接点击对应矩形区域,比手动计算中心点再点击更方便。
  • 如果屏幕上有多处包含该关键词的文字,示例中点击第一个后跳出循环;如果需要点击所有匹配项,去掉 break 即可。
  • 确保已在 Hamibot 中授予无障碍权限和悬浮窗权限,否则截图可能失败。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实