public void testAppByName(String appName) throws UiObjectNotFoundException {
screenUnlocker();
// String appName = "Clock";
UiObject allAppsButton = new UiObject(
new UiSelector().description("Apps"));
allAppsButton.clickAndWaitForNewWindow();
UiObject appsTab = new UiObject(new UiSelector().text("Apps"));
appsTab.click();
UiScrollable appViews = new UiScrollable(
new UiSelector().scrollable(true));
UiObject appLaunch = appViews.getChildByText(new UiSelector()
.className(android.widget.TextView.class.getName()), appName);
appLaunch.clickAndWaitForNewWindow();
}
如何使用 uiautomator runtest 命令为方法提供值我试图执行以下命令adb shell uiautomator>runtest LaunchAppByName.jar -c>com.motorola.launchappbyname.LaunchAppByName#testAppByName -e String Clock 我收到错误它.framework.AssertionFailedError: 方法"testAppByName"未找到
为了将参数传递给测试用例,uiautomator说:
-e <NAME> <VALUE>: other name-value pairs to be passed to test classes.
May be repeated.
例如,您可以执行以下操作:
adb shell uiautomator runtest UiTest.jar -c package.name.ClassName -e stringKey stringValue
在您可以使用的代码中
String stringValue = getParams().getString("stringKey");
getString('key')
将返回您写为字符串值的内容
要使用 adb 命令提供的额外功能,修改您的函数如下,
public void testAppByName() {
getParams().getString("appName");
}
为了传递多个参数,您可以使用
adb shell uiautomator runtest UiTest.jar -c package.name.ClassName -e stringKey1 stringValue -e stringKey2 stringValue -e stringKey3 stringValue