查看了一下 getChildByText 的源码,发现这个函数是先 scrollIntoView 到对应的文本,再匹配 childPattern。

这样如果我的界面上有两个相同文本的按钮但其他属性不同的时候,就没办法通过这个方法来定位界面上位于下面的那个按钮。

各位大神,有没有比较完美的解决办法?

Public UiObject getChildByText(UiSelector childPattern, String text, boolean allowScrollSearch)
            throws UiObjectNotFoundException {
        Tracer.trace(childPattern, text, allowScrollSearch);
        if (text != null) {
            if (allowScrollSearch) {
                scrollIntoView(new UiSelector().text(text));
            }
            return super.getChildByText(childPattern, text);
        }
        throw new UiObjectNotFoundException("for text= \"" + text + "\"");
    }


↙↙↙阅读原文可查看相关链接,并与作者交流