如何解决 UiSelector.waitFor() 一直阻塞问题

已存档

有没有设置超时的办法

pikename
88
· 2 年前

回答

Remiel
4
· 2 年前

我会考虑用findOne(t),或者写个无限循环再跳出

已选为答案
1
BATU1579
455
· 2 年前

其实 findOne(time) 就相当于那个 waitFor() 的限时版。因为他是对屏幕上的控件进行搜索,直到屏幕上出现满足条件的一个控件为止,并返回该控件;如果在 timeout 毫秒的时间内没有找到符合条件的控件,则终止搜索并返回 null (摘自文档)。不同的是最后判断一下是不是空就可以了,比如可以这样:

if (!selector().findOne(200) {
    throw new UIObjectNotFoundError();
}
1