【问题标题】:How to run UiAutomator from MainActivity?如何从 MainActivity 运行 UiAutomator?
【发布时间】:2016-05-29 10:47:23
【问题描述】:

我正在为我的应用程序实现 UiAutomator 以实现跨应用 UI 自动化。我把它放在 AndroidTest 类下。当我运行我的测试类时它工作正常,但我需要它从我的应用程序运行(不必将它连接到计算机)。 我找到了这个解决方案,但它不起作用:

 private void runTests() {
    Bundle arguments = new Bundle();
    final String packageName = getPackageName();
    final List<InstrumentationInfo> list =
            getPackageManager().queryInstrumentation(packageName, 0);
    if (list.isEmpty()) {
        return;
    }
    final InstrumentationInfo instrumentationInfo = list.get(0);
    final ComponentName componentName =
            new ComponentName(instrumentationInfo.packageName,
                    instrumentationInfo.name);

    arguments.putString("package",  "my package");
    startInstrumentation(componentName,null,arguments);
   }

显然,检测的 UiAutomator 参数返回 null。知道如何从主应用程序运行 UiAutomator 吗?

【问题讨论】:

  • “当我运行我的测试类时它工作正常,但我需要它从我的应用程序运行(不必将它连接到计算机)”——你不能以这种方式运行仪器测试。它们必须由测试运行器从合适的流程运行。 “我正在为我的跨应用 UI 自动化应用程序实现 UiAutomator”——您可能希望更详细地解释您的意思。

标签: java android ui-automation android-uiautomator


【解决方案1】:

这是不可能的。查看类似问题的答案:

UiAutomator 2.0 依赖于 Instrumentation,它仅在您使用 am instrument 运行测试时可用...。常规(非测试)应用无法访问 Instrumentation。

https://stackoverflow.com/a/29419540/1999084

【讨论】:

    猜你喜欢
    • 2014-11-25
    • 1970-01-01
    • 2013-08-14
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多