Autojs控件操作:控件选择器的使用(3)

本课视频教程:https://weidian.com/knowledge.html?itemID=6292147136


3、通过控件选择器获取控件对象(1)

UiSelector.findOne()

  • 返回 [UiObject]

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

需要注意的是,如果屏幕上一直没有出现所描述的控件,则该函数会阻塞,直至所描述的控件出现为止。

因此此函数不会返回null

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

UiSelector.findOne(timeout)

  • timeout {number} 搜索的超时时间,单位毫秒
  • 返回 [UiObject]

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

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

UiSelector.findOnce()

  • 返回 [UiObject]

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

UiSelector.findOnce(i)

  • i {number} 索引

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

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

搜索