本课视频教程: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)决定的。