Uiautomator“我开始”

时间:2013-07-30 07:59:28

标签: android uiautomator

有没有人知道怎么称呼 来自am start -a ACTIVITY代码的uiautomator 或者是否可以直接从junit代码开始活动。

3 个答案:

答案 0 :(得分:5)

以下是我用来从.jar文件启动活动的示例:

private boolean startSettings() {
    try {
        Runtime.getRuntime().exec(
                "am start -n com.android.settings/.Settings");
        sleep(1000);
    } catch (IOException e) {
        e.printStackTrace();
    }
    for (int i = 0; i < 5; i++) {
        sleep(1000);
        if (getUiDevice().getCurrentPackageName().contains(
                "com.android.settings")) {
            return true;
        }
    }
    return false;
}

您可以修改代码以启动任何应用。您还可以通过为包/活动值添加参数来使方法更通用。

答案 1 :(得分:4)

请注意以下代码。我在测试中使用它。

UiDevice device = UiDevice.getInstance(getInstrumentation());
final String TARGET_PACKAGE =
        InstrumentationRegistry.getTargetContext().getPackageName();

Context context = InstrumentationRegistry.getContext();
final Intent intent = context.getPackageManager().getLaunchIntentForPackage(TARGET_PACKAGE);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
device.wait(Until.hasObject(By.pkg(TARGET_PACKAGE).depth(0)), 5000);

答案 2 :(得分:0)

我所做的,是启动应用程序并运行UIAutomator测试部分构建。这是我在构建Ant build.xml后运行UIAutomator测试的方法。此代码段添加到build.xml的末尾并导致应用程序启动,然后启动UI测试。使用eclipse确保你右键单击build.xml然后 - &gt;运行方式 - &gt; Ant Build ...并确保选择正确的目标:'build','install','start','mytest'。目标“开始”和“mytest”将通过以下代码段添加。

<!-- version-tag: VERSION_TAG -->
<!-- This line should already be at the end of build.xml -->
<import file="${sdk.dir}/tools/ant/uibuild.xml" />

<target name="start" description="Start App" depends="build, install">
    <echo>Starting Navigation Example</echo>

    <exec executable="${adb}" failonerror="true">
        <arg value="shell" />
        <arg value="am" />
        <arg value="start" />
        <arg value="-n" />
        <arg value="com.example.android.navigationdrawerexample/.MainActivity" />
    </exec>
</target>

<target name="mytest" description="Runs UI tests" depends="build, install, start">
    <echo>Running UI Tests</echo>
    <exec executable="${adb}" failonerror="true">
       <arg value="shell" />
       <arg value="uiautomator" />
       <arg value="runtest" />
       <arg value="${out.filename}" />
       <arg value="-c" />
       <arg value="com.example.android.navigationdrawerexample.MainTestCase" />
   </exec>
</target>