本人在學習使用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();
}