本人在学习使用UiAutomator的时候,需要写一个验证修改密码的用例,然后登录,然后在改回原来的密码登录。实现起来挺简单的,自己也层尝试用mysql验证密码,但是效果不理想,所以这里也没有写验证比较粗糙。这里主要用了一些简单的自定义方法,使代码看起出来相对有条理了一些,现在分享出来,供大家参考。
public void alterPassWord() throws UiObjectNotFoundException {//修改密码再改回来
clean();
Runtime.getRuntime().exec("am start -n {包名}/{activity名}");
sleep(500);
login();
getUiScrollabe().getChildByText(new UiSelector().text("设置"), "设置").clickAndWaitForNewWindow();
getUiObjectByText("修改密码").clickAndWaitForNewWindow();
writeText("222222");
getUiObjectByText("下一步").clickAndWaitForNewWindow();
long word = new Random().nextInt(900000)+100000;
String password = "" + word;
outputNotable(password);
getUiObjextByResourceId("com.dianzhi.student:id/ed_password__password_change").setText(Utf7ImeHelper.e(password));
getUiObjextByResourceId("com.dianzhi.student:id/ed_esure_p_password_password_change").setText(Utf7ImeHelper.e(password));
getUiObjectByText("完成").clickAndWaitForNewWindow();
getUiObjectByText("我的").clickAndWaitForNewWindow();
getUiObjextByResourceId("com.dianzhi.student:id/activity_login_et_pwd").setText(password);
getUiObjectByTextResourceId("登录", "com.dianzhi.student:id/user_login_complete").clickAndWaitForNewWindow();
getUiObjectByText("我的").clickAndWaitForNewWindow();
getUiScrollabe().getChildByText(new UiSelector().text("设置"), "设置").clickAndWaitForNewWindow();
getUiObjectByText("修改密码").clickAndWaitForNewWindow();
writeText(password);
getUiObjectByText("下一步").clickAndWaitForNewWindow();
getUiObjextByResourceId("com.dianzhi.student:id/ed_password__password_change").setText(Utf7ImeHelper.e("222222"));
getUiObjextByResourceId("com.dianzhi.student:id/ed_esure_p_password/_password_change").setText(Utf7ImeHelper.e("222222"));
getUiObjectByText("完成").clickAndWaitForNewWindow();
login();
}