public void testLoginValidation() throws TestException { try { Log.i(TAG, "------It is testLoginValidation()-----------"); activityName = soloLoginValid.getCurrentActivity().getClass().getSimpleName(); if (activityName.equalsIgnoreCase("MainActivity")) { Log.i(TAG, "------It is MainActivity-----------" + activityName); soloLoginValid.waitForActivity("HomeActivity", 2000); for (int i = 0; i < 40; i++) { activityName = soloLoginValid.getCurrentActivity().getClass().getSimpleName(); if (activityName.equalsIgnoreCase("HomeActivity")) { Log.i(TAG, "------for()-- loop-----"); break; } soloLoginValid.waitForActivity("HomeActivity", 2000); } } else { Log.i(TAG, "------ testLoginValidation failed-----------"); throw new TestException( "Current Activity Failed----" + soloLoginValid.getCurrentActivity().getClass().getSimpleName() + "failed"); } if (activityName.equalsIgnoreCase("HomeActivity")) { Log.i(TAG, "------HomeActivity-----------"); System.out.println(" Activity name ---->" + soloLoginValid.getCurrentActivity()); ArrayList<View> al = soloLoginValid.getViews(); Iterator<View> it = al.iterator(); while (it.hasNext()) { String viewName = it.next().getClass().getSimpleName(); if (viewName.equalsIgnoreCase("ImageView")) { Log.i(TAG, "------ImageView found-----------"); break; } continue; } } else { Log.i(TAG, "------HomeActivity not found-----------"); throw new TestException( TAG + soloLoginValid.getCurrentActivity().getClass().getSimpleName() + "failed"); } // click on Loginbutton soloLoginValid.waitForActivity("MainActivity", 5000); // get the login button view with id i.e home_login_btn ImageView loginButton = (ImageView) soloLoginValid.getView(R.id.home_login_btn); // click on login button with view id soloLoginValid.clickOnView(loginButton); // control waits for 2 seconds to activate the screen soloLoginValid.waitForActivity("SplashActivity", 2000); // clears the text at first Editfield EditText emailField = (EditText) soloLoginValid.getView(R.id.txt_email); soloLoginValid.clearEditText(emailField); // it will type the text at first field which i gave in method soloLoginValid.enterText(emailField, "android@"); // clear the text at second Editfield EditText passwordField = (EditText) soloLoginValid.getView(R.id.txt_password); soloLoginValid.clearEditText(passwordField); // finding the password field view // click the password field based on EditText view object soloLoginValid.clickOnView(passwordField); soloLoginValid.waitForActivity("MainActivity", 1000); soloLoginValid.enterText(passwordField, "*****"); soloLoginValid.waitForActivity("MainActivity", 1000); // click on Login button ImageView clickLogin = (ImageView) soloLoginValid.getView(R.id.login_btn); soloLoginValid.clickOnView(clickLogin); // soloSplash.clickOnImageButton(1); soloLoginValid.waitForActivity("LoginActivity"); soloLoginValid.clickOnView(emailField); soloLoginValid.waitForActivity("LoginActivity", 1000); boolean valid = soloLoginValid.searchText("Invalid Email address!"); if (valid) { assertTrue("Invalid Email address!", valid); } else { throw new TestException("Testcase failed"); } soloLoginValid.waitForActivity("LoginActivity", 1000); // Get the view location of cancel button. clickCancel = (ImageView) soloLoginValid.getView(R.id.cancel_btn); soloLoginValid.waitForActivity("MainActivity", 1000); // click on cancel button soloLoginValid.clickOnView(clickCancel); soloLoginValid.waitForActivity("LoginActivity", 1000); } catch (TestException e) { e.printStackTrace(); } }