前言

UI选择器中,有findOne()、findOne(timeout)、findOnce()、findOnce(i)、find()、untilFind()几个函数接口。在开发的过程中,这几个接口有什么区别呢?

下面飞云结合Autojs Pro的官方文档,来分享一下。

UiSelector.findOne()返回值类型备注UiSelector返回选择器自身以便链式调用

根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,直到屏幕上出现满足条件的一个控件为止,并返回该控件。如果找不到控件,当屏幕内容发生变化时会重新寻找,直至找到。

需要注意的是,如果屏幕上一直没有出现所描述的控件,则该函数会阻塞,直至所描述的控件出现为止。因此此函数不会返回null。该函数本来应该命名为untilFindOne(),但由于历史遗留原因已经无法修改。如果想要只在屏幕上搜索一次而不是一直搜索,请使用findOnce()。

另外,如果屏幕上有多个满足条件的控件,findOne()采用深度优先搜索(DFS),会返回该搜索算法找到的第一个控件。注意控件找到的顺序有时会起到作用。

一句话总结

findOne()函数会一直在屏幕上不停的寻找组件,直到找到。无返回值。

UiSelector.findOne(timeout)参数类型描述timeoutnumber搜索的超时时间,单位毫秒返回值类型备注UiSelector返回选择器自身以便链式调用

根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,直到屏幕上出现满足条件的一个控件为止,并返回该控件;如果在timeout毫秒的时间内没有找到符合条件的控件,则终止搜索并返回null。

该函数类似于不加参数的findOne(),只不过加上了时间限制。

官方示例:

一句话总结

findOne(timeout)函数在设定时间内寻找组件,返回null或返回找到的控件。

UiSelector.findOnce()返回值类型备注UiSelector返回选择器自身以便链式调用

根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,如果找到符合条件的控件则返回该控件;否则返回null。

一句话总结

findOnce()函数在屏幕上寻找组件,返回null或返回找到的控件。

UiSelector.findOnce(i)参数类型描述i{number}索引

根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,并返回第 i + 1 个符合条件的控件;如果没有找到符合条件的控件,或者符合条件的控件个数 < i, 则返回null。

注意这里的控件次序,是搜索算法深度优先搜索(DSF)决定的。

一句话总结

findOnce(i)函数在屏幕上寻找索引为 i + 1 的组件,返回null或返回找到的控件。

UiSelector.find()返回值类型备注UiCollection控件集合

根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,找到所有满足条件的控件集合并返回。这个搜索只进行一次,并不保证一定会找到,因而会出现返回的控件集合为空的情况。

不同于findOne()或者findOnce()只找到一个控件并返回一个控件,find()函数会找出所有满足条件的控件并返回一个控件集合。之后可以对控件集合进行操作。

可以通过empty()函数判断找到的是否为空。例如:

一句话总结

find()函数遍历屏幕上的组件,返回组件的集合。没招到则返回空集。

UiSelector.untilFind()返回值类型备注UiCollection控件集合

根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,直到找到至少一个满足条件的控件为止,并返回所有满足条件的控件集合。

该函数与find()函数的区别在于,该函数永远不会返回空集合;但是,如果屏幕上一直没有出现满足条件的控件,则该函数会保持阻塞。

一句话总结

untilFind()函数会一直在屏幕上不停的寻找组件,直到找到。找到后返回组件的集合。

autojs 如何获取控件的desc_Autojs Pro中,常用的几个选择器搜索接口的区别-技术类-雨后春笋...相关推荐

  1. autojs 如何获取控件的desc_owchart教程三:如何添加成交量?

    这是owchart框架教程的第三节,该示例兼容支持Visual Studio 2005-202X,覆盖.Net2.0到后续所有版本,不同版本的IDE项目构建和编码过程基本相同.该示例代码会被上传至gi ...

  2. autojs 如何获取控件的desc_如何使用autojs获取抖音引流脚本用户性别实战教学

    /* 寻找节点 @way:查找方式: text/desc/id/className @str:節點文本 @timeOut:查找超时的时间,默认1000毫秒.可空 @视频对照教学:www.loveps. ...

  3. Auto.js 控件属性缺失时获取控件

    Auto.js 在控件属性缺失情况下获取控件 群里有很多新人问,各种既没有id也没有text的控件无法获取的问题. 文章目录 Auto.js 在控件属性缺失情况下获取控件 使用环境 一.具体操作 只用 ...

  4. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  5. .net OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 新解决方法...

    2019独角兽企业重金招聘Python工程师标准>>> 朋友找我帮原来的软件加一个小功能,程序是用VB.NET 写的. 软件需要与外部串口设备通信,一只带串口功能的压力表. 应该时间 ...

  6. JS 获取控件的绝对位置

    JS 获取控件的绝对位置 js获取控件的绝对位置 已经控件宽度和高度 2010-08-11 13:07 //获取控件左绝对位置 function getAbsoluteLeft(objectId) { ...

  7. 【Android】获取控件的宽和高

    有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式: 1. onWindowFocusChanged @Overridepublic void onWin ...

  8. Asp.net 2.0 中获取控件输出的Html代码 (转)

    将Asp.net 控件的呈现html获取,在不少场合会用到,比如生成静态页时 以下代码选自 Asp.net 2.0 高级编程 转自:Asp.net 2.0 中获取控件输出的Html代码 public  ...

  9. android 获取控件在屏幕中的坐标

    今天,简单讲讲android如何获取控件在屏幕中的坐标. 这个其实也很简单,但是昨天做一个功能时,需要功能控件的坐标做一些逻辑操作时,居然不知道怎么做.所以在网上查找了资料后,解决了这个问题.这里记录 ...

最新文章

  1. gulp插件之browser-sync安装报错
  2. 再改YOLO | YOLO-ReT让边缘端也可以实时检测
  3. 数据结构特性解析 (二) ArrayList
  4. 工作没有挑战性,怎么办?
  5. cmake跨平台编译之判断操作系统平台、32位64位系统
  6. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 46: ordinal
  7. mysql key uni_uni app 踩坑实录
  8. php下载链接生成,php脚本生成google play url的下载链接,下载apk并自动反编译后
  9. 老年手机英文改中文_不服来战:“老年人才用9键!”
  10. 使用Spring JDBC时遇到的Software caused connection abort: recv failed问题
  11. mysql数据库主从出现1236错误
  12. hdu 6205: card card card【输入挂】
  13. SketchUp的二次开发探索 (三)制作一个完整的插件
  14. 谷歌浏览器书签保存在哪里以及书签导入导出方法
  15. 基础弹幕原理python海龟库
  16. utorrent不能下载的解决方法
  17. 学习笔记:星火第一讲-使用Apollo 学习自动驾驶
  18. 【2018 Nature】Review Disease Primers - Epilepsy 【文献翻译】
  19. java大马后门_【猥琐流】制作一个隐藏在黑页下的大马并且添加后门
  20. 【全志T113-S3_100ask】15-1 内核5.4驱动spi屏幕——ILI9341

热门文章

  1. Win7下程序结束为何没有调用 DLL_PROCESS_DETACH?
  2. 我的秋招之路之c++中static的用法
  3. Linux下autoconf和automake使用
  4. 【转】详谈for循环里面的break和continue语句
  5. 服务器上安装ffmpeg后报错及解决方案libavdevice.so.58: cannot open shared object file: No such file or directory
  6. 【C++】语法小知识
  7. ustc小道消息20211223
  8. 科大星云诗社动态20210208
  9. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170412
  10. 二十三、“为天下人谋幸福,才是真正的大事。”(2021.7.9)