第四章:使用UIAutomator在不同手机上启动app

刚开始在一部手机上用uiautomator跑用例,所以只是简单的使用了new UiObject(new UiSelector().text("app名字")).click(); 来启动app的,后因为启动后的用例出了些问题,想用其他手机测试时才发现靠这种方法只能适用一款手机,于是就开始百度,百度大多说可以使用RunTime().getRunTime().exec("adb shell am -w 包名/.类名");去开启app,但小白也不清楚因为什么原因,试了好多次,这种方式在小白这里并不适用,几经辗转,从github上找到了可以在不同手机启动app的方法:

private UiDevice mDevice;

private static final int LAUNCH_TIMEOUT=7000;

private static final String packageName="org.txst.tst";

@Test

public void startapp() throws UiObjectNotFoundException{

final String launcherPackage=mDevice.getLauncherPackageName();

assertThat(launcherPackage,notNullValue());

mDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)),LAUNCH_TIMEOUT);

Context context=InstrumentationRegistry.getContext();

final Intent intent=context.getPackageManager().getLaunchIntentForPackage(packageName);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

context.startActivity(intent);

mDevice.wait(Until.hasObject(By.pkg(packageName).depth(0)),LAUNCH_TIMEOUT);

}

所以将此记录下来,如还有其他好建议的小伙伴可以评论告诉小白。

你可能感兴趣的:(第四章:使用UIAutomator在不同手机上启动app)