在Android中使用ui automator viewer测试应用程序时遇到问题

时间:2017-03-15 05:11:28

标签: android android-testing uiautomator

在android中使用uiAutomator Viewer时遇到问题。在我的应用程序中,第一个屏幕是包含电子邮件编辑文本的登录屏幕,用于记住凭据的复选框,密码编辑文本和登录按钮。当点击登录按钮时,包含json响应调用的函数,在第一个函数的成功json响应之后调用另一个json函数,然后在第二个json函数响应,第三个json函数然后激活intent。

但是这里发生了什么,它达到了功能,但不要调用功能,或者我们可以说没有进入功能。如需帮助,您可以查看我的LoginScreenActivity代码。我也尝试过增加时间,但不知道为什么它会像这样。请帮帮我

LoginScreenActivity.java

public void userLogin(String email,String password){
getFirstData();
}
public void getFirstData(){
code for json response
getSecondData();
}
public void getSecondData(){
code for json response
getThirdData();
}
public void getThirdData(){
code for json response
intent fire 
}

LoginScreenActivityTest.java

  public void setUp() throws Exception {
        loginScre = new LoginScreenActivity();
        mInstrumentation = getInstrumentation();
    }

    @Test
    public void getIntValue() throws Exception {
        device = UiDevice.getInstance(getInstrumentation());
        device.pressHome();
        device.wait(Until.hasObject(By.desc("Apps")), 3000);
        // device.wait(Until.hasObject(By.desc("Apps")), 3000);
        UiObject2 appsButton = device.findObject(By.desc("Apps"));
        appsButton.click();
        device.wait(Until.hasObject(By.desc("MyProject")), 3000);
        UiObject2 calculatorApp = device.findObject(By.text("MyProject"));
        calculatorApp.click();
        // UiObject editText = new UiObject(new UiSelector().className("android.widget.EditText").instance(1));
        UiObject editText = new UiObject(new UiSelector().resourceId("com.example.myproject:id/et_username"));
        editText.setText("abc@gmail.com");
        String emainEnter = editText.getText().toString();
        UiObject psswrd = new UiObject(new UiSelector().resourceId("com.example.myproject:id/et_password"));
        psswrd.click();
        psswrd.setText("abc123$");
        UiObject remember_me = new UiObject(new UiSelector().resourceId("com.example.myproject:id/remember_me"));
        if (!remember_me.isSelected()) {
            remember_me.click();
        }

        device.wait(Until.hasObject(By.text("Login")), 999000);
        UiObject2 buttonlogin = device.findObject(By.text("Login"));
        buttonlogin.click();

在这一行device.wait(Until.hasObject(By.text("Login")), 999000);我也试过改变时间。但无法找到任何解决方案。请帮帮我

0 个答案:

没有答案