土豆_wk 2024-01-26 16:17 采纳率: 79.2%
浏览 8

autox.js的脚本问题

用autox.js如何写查看子元素中没有没id叫a3m的没有就点击他,有跳过

function searchNewRedpacket() {
    // 通过className+id,共同查找元素
    var rp_msg_list = className("android.widget.TextView").id(red_package_tag).find();
    if (rp_msg_list.length != 0) {
        log("检测到的个数: " + rp_msg_list.length);

        // 遍历对象
        for (var i = 0; i < rp_msg_list.length; i++) {
            var rp_u1 = rp_msg_list[i];
            var rp_u1_parent = rp_u1.parent();
            
            
            
            // 检查rp_u1_parent的子元素中是否有id叫a3m,如果没有就点击它
            if (rp_u1_parent != null && !rp_u1_parent.child(id("a3m")).exists()) {
                log("点击a3m...");
                click(rp_u1_parent.child(id("a3m")).bounds().centerX(), rp_u1_parent.child(id("a3m")).bounds().centerY());
            }
        }
    } else if (rp_msg_list.empty()) {
        // 元素列表为空
        log("未检测到消息" + rp_msg_list.length);
    } else {
        return;
    }
}

报错Cannot convert id("a3m") to java.lang.Integer

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-26 18:22
    关注

    【以下回答由 GPT 生成】

    问题的关键在于查找子元素中是否存在没有id叫a3m的元素,并根据情况点击该元素或跳过该元素。

    首先,你可以通过使用 id("a3m") 来定位到指定id的元素,然后通过调用 exists() 方法来判断元素是否存在。

    接下来,我们可以在 if 语句中添加条件来判断是否存在id叫a3m的元素,如果不存在则点击该元素。

    function searchNewRedpacket() {
        // 通过className+id,共同查找元素
        var rp_msg_list = className("android.widget.TextView").id(red_package_tag).find();
        if (rp_msg_list.length != 0) {
            log("检测到的个数: " + rp_msg_list.length);
    
            // 遍历对象
            for (var i = 0; i < rp_msg_list.length; i++) {
                var rp_u1 = rp_msg_list[i];
                var rp_u1_parent = rp_u1.parent();
    
                // 检查rp_u1_parent的子元素中是否有id叫a3m,如果没有就点击它
                if (rp_u1_parent != null && !rp_u1_parent.child(id("a3m")).exists()) {
                    log("点击a3m...");
                    click(rp_u1_parent.child(id("a3m")).bounds().centerX(), rp_u1_parent.child(id("a3m")).bounds().centerY());
                }
            }
        } else if (rp_msg_list.length === 0) {
            // 元素列表为空
            log("未检测到消息" + rp_msg_list.length);
        } else {
            return;
        }
    }
    

    请注意,在上面的代码中,假设 red_package_tag 是一个已定义的变量,用于定位元素的id。在实际使用时,你需要将其替换为实际的元素id。如果没有提供有效的id,则无法正确定位元素,并且你需要根据实际情况进行相应的处理。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月26日

悬赏问题

  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错
  • ¥15 拓扑学,凸集,紧集。。
  • ¥15 如何扩大AIS数据容量
  • ¥15 单纯型python实现编译报错