如何使用带min、max参数的BySelector depth方法?实例化问题求助
解决方法
你完全不用手动循环检查层级,其实有更简洁的实现方式:
By类的所有工厂方法(比如By.id()、By.text()、By.clazz()等)返回的都是BySelector实例,拿到这个实例后,直接调用它的双参数depth(int min, int max)方法即可——BySelector的所有方法都支持链式调用。
举个实际场景的例子:如果要查找深度在2到5之间、资源ID为com.example:id/submit_btn的控件,代码可以这么写:
UiObject2 targetBtn = getDevice().findObject( By.res("com.example:id/submit_btn").depth(2, 5) );
核心逻辑就是:By工厂类负责创建初始的BySelector对象,之后你可以在这个对象上调用任意BySelector的方法(包括双参数的depth)补充筛选条件,最后用组合后的selector完成控件查找即可。
内容的提问来源于stack exchange,提问作者LLL
相关产品推荐
相关产品推荐

