UiSelector如何实现“或者”的操作

已知 descContains("aaa").textContains("aaa") 可以找到desc和text分别同时包含“aaa”的控件,返回一个UiSelector。

现在问题是如何实现“或者”的操作,即desc或者text包含“aaa”的UiSelector,请问如何操作?

使用find自己封装一个。findOne内部也是用find来写的

使用find是可以的,但是返回结果就是一个UiCollection了,而不是UiSelector了。

支付宝的文字,有时候在text里,有时候在desc里。。。。

最后由 basking 编辑
开发者
filter(obj => contains(obj.desc(), "aaa") || contains(obj.text(), "aaa")).findOne()

function contains(str, substr){
    if(!str) return false;
    return str.indexOf(substr) >= 0;
}

@admin 调试信息是这样的,不懂什么意思:

20:27:21.576/E: Cannot convert org.mozilla.javascript.ArrowFunction@db4651 to com.stardust.automator.filter.BooleanFilter$BooleanSupplier (__selector__.js#12)
	at script(__selector__.js:12)
	at script(<testCon>:3)

脚本源码

var g = filter(obj => contains(obj.desc(), "攻略") || contains(obj.text(), "攻略")).findOne();

function contains(str, substr){
    if(!str) return false;
    return str.indexOf(substr) >= 0;
}

g.click();
最后由 basking 编辑
开发者

@basking

var g = filter(function(obj){
    return contains(obj.desc(), "攻略") || contains(obj.text(), "攻略");
}).findOne();

function contains(str, substr){
    if(!str) return false;
    return str.indexOf(substr) >= 0;
}

g.click();
  • 8
    帖子
  • 2291
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待