问题描述
我正在尝试使用 UIAutomator,以便能够对我的 Android 应用进行更广泛的 Instrumentation 测试。
我的一个测试应该检查是否可以通过 Telegram 共享来自应用程序的链接。
这些是我使用的函数:
public static void clickUiTextButton(UiDevice device,String text,boolean waitForNewWindow) throws UiObjectNotFoundException {
UiObject button = device.findobject(new UiSelector().text(text));
if (!waitForNewWindow) {
button.click();
} else {
button.clickAndWaitForNewWindow();
}
}
public static void clickTelegramChat(UiDevice device,String text) throws UiObjectNotFoundException {
UiObject button = device.findobject(new UiSelector()
.textMatches(TEXT_TELEGRAM_CHAT_NAME));
button.click();
}
我使用第一个函数单击共享意图中的“Telegram”文本,它完美无缺。但是,当我尝试单击要共享链接的聊天(使用第二个功能)时,没有任何反应。
我在 docs 中读到有多种方法可以选择文本,但是 .textMatches() 似乎是唯一可以匹配非小部件对象的。
谁能帮我弄清楚如何正确选择正确的 Telegram 聊天?
解决方法
您是否使用 uiautomatorviewer
检查了屏幕的转储?
调用该方法时可能不会显示文本。还要检查它是否真的是文本,它可能是内容描述,因此 textMatches
不起作用。