金猪脚本Auto.js获取界面所有文字

  此源码是获取界面所有文字,希望对auto.js技术爱好者有所启示。

/**
//脚本学习交流+741318378 订制开发自动化脚本vx 104810314同扣扣
  * @method getAllText
  * @param  setting 是个对象, 决定是否获取text,desc,id,以及是否去重; 默认获取text和desc,不获取id,默认去重
  * @desc 默认设置为{
    getText: true,
    getDesc: true,
    getId: false,
    removeRepetitiveElements: true
  }
  * @desc 获取页面所有文字,可以指定text,desc,id三个中的任意几个
  * @return 所有文字组成的数组
  */
function getAllText(setting) {
    var setting = setting || {}
    var defaultSetting = {
        getText: true,
        getDesc: true,
        getId: true,
        removeRepetitiveElements: true
    }
    Object.assign(defaultSetting, setting);
    log(defaultSetting)
    var allStr = []
    var getDescAndTextAndIdOfNode = function(node) {
        if (node) {
            if (defaultSetting.getText) {
                var text = node.text()
                if (!!text) {
                    allStr.push(text)
                }
            }
            if (defaultSetting.getDesc) {
                var desc = node.desc()
                if (!!desc) {
                    allStr.push(desc)
                }
            }
            if (defaultSetting.getId) {
                var id = node.id()
                if (!!id) {
                    allStr.push(id)
                }
            }
        }
        for (let i = 0; i < node.childCount(); i++) {
            getDescAndTextAndIdOfNode(node.child(i));
        }
    }



    var getFrameLayoutNode = function() {
        return className('FrameLayout').findOne(2000)
    }
    getDescAndTextAndIdOfNode(getFrameLayoutNode())

    function removeRepetitiveElements(arr) {
        var obj = {}
        for (let i = 0; i < arr.length; i++) {
            if (obj.hasOwnProperty(arr[i])) {} else {
                obj[arr[i]] = true
            }
        }
        return Object.keys(obj)
    }
    if (defaultSetting.removeRepetitiveElements) {
        allStr = removeRepetitiveElements(allStr)
    }
    return allStr
}
var setting = {
    getId: true
}
var r = getAllText(setting)
log(r)

toastLog("完成");

学习交流加 扣扣裙 :74-131-83-78