easyclick 获取的节点中没有text属性值,但是页面有值展示如何获取?

image.png
我通过easyclick的节点获取,获取到了节点,明明页面上有内容,但是节点的text属性为空值(desc也为空),请问该如何获取这个节点上的文字值

获取节点的代码如下:

let timeAndLoc = parentNode.getOneNodeInfo(id("com.smile.gifmaker.comment_detail:id/comment_created_time_and_loc"), 1000)
console.log(timeAndLoc.text)
阅读 786
1 个回答

我写了个函数,你可以试一下

function getNodeText(node) {
    if (!node) return null;

    // 尝试获取常见属性
    let textValue = node.text || node.contentDescription || node.hint || node.label || node.value;
    if (textValue) return textValue;

    // 尝试获取所有自定义属性
    for (let key in node) {
        if (node.hasOwnProperty(key) && typeof node[key] === 'string' && node[key].trim() !== '') {
            return node[key];
        }
    }

    // 遍历子节点获取文本内容
    let childNodes = node.childNodes;
    for (let i = 0; i < childNodes.length; i++) {
        textValue = getNodeText(childNodes[i]);
        if (textValue) return textValue;
    }

    return null;
}

let timeAndLoc = parentNode.getOneNodeInfo(id("com.smile.gifmaker.comment_detail:id/comment_created_time_and_loc"), 1000);
let textValue = getNodeText(timeAndLoc);
console.log(textValue);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏