本人在做自動化測試的時候,有時候會遇到需要登錄特定帳號進行測試,但可能已經登錄了其他帳號了,導致用例失敗的問題。所以需要在驗證登錄的時候再做一個判斷,在修改代碼的時候,突然想起了遞歸函數,複習了一下,嘗試之後感覺很省事兒,特別方便。分享一下代碼,供大家參考。
//登錄學生app
public void login() throws UiObjectNotFoundException {
clickMe();//點擊我的
if (getUiObjectByResourceId("com.gaotu100.superclass:id/mylexuefragment_user_phone").exists()) {
String id = getTextByResourceId("com.gaotu100.superclass:id/mylexuefragment_user_phone");
if (id.contains("132249") | id.contains("157568")) {
return;
} else {
exitApp();
login();
}
} else {
getUiObjectByResourceId("com.gaotu100.superclass:id/login_username").clearTextField();
pressTimes(KeyEvent.KEYCODE_FORWARD_DEL, 12);//清除已有帳號
getUiObjectByResourceId("com.gaotu100.superclass:id/login_username").setText("13120454218");//輸入帳號
getUiObjectByResourceId("com.gaotu100.superclass:id/login_password").setText("qqqqqq");//輸入密碼
getUiObjectByResourceId("com.gaotu100.superclass:id/login_button").clickAndWaitForNewWindow();//點擊登錄
}
}
這個是UiAutomator的方法,selenium思路也是一樣的,就不再貼代碼了。