public void retrieveWidgets() { home(); clearWidgetList(); ArrayList<View> viewList = (isInAndOutFocusEnabled()) ? solo.getViews() : solo.getCurrentViews(); for (View w : viewList) { String text = (w instanceof TextView) ? ": " + ((TextView) w).getText().toString() : ""; Log.d( "nofatclips", "Found widget: id=" + w.getId() + " (" + w.toString() + ")" + text); // + " in window at [" + xy[0] + "," + xy[1] + "] on screen at [" + xy2[0] + // "," + xy2[1] +"]"); // allViews.add(w); // if (w.getId() > 0) { theViews.put(w.getId(), w); // Add only if the widget has a valid ID } if (w instanceof TabHost) { setTabs((TabHost) w); } } }
private List<String> getVisibleText() { List<String> texts = new ArrayList<String>(); ArrayList<View> views = rutils.removeInvisibleViews(solo.getViews()); for (View v : views) { if (v instanceof TextView) { String text = ((TextView) v).getText().toString(); texts.add(text); } } return texts; }
/** * Enhanced view finder. First tries to find it from Activity, then from all Views under ViewRoot. */ protected final View findViewById(int id) { View view = solo.getView(id); if (view != null) return view; ArrayList<View> views = solo.getViews(); for (View v : views) { if (v.getId() == id) { return v; } } return null; }
private CommandResponse getViews(String[] arguments) { String command = "the command getViews"; CommandResponse result = new CommandResponse(); String response = ""; try { response = solo.getViews().toString(); result.setResponse(command + ",Response: " + response); result.setSucceeded(true); } catch (Throwable e) { result = handleException(command, e); } return result; }
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(); } }
private CommandResponse verifyViewExistsByDescription(String[] arguments) { String command = "the command verify view exists by description"; CommandResponse result = new CommandResponse(); if (arguments == null || arguments.length < 2) { result.setResponse("Not all parameters were received"); result.setSucceeded(false); } else { try { boolean startsWith = false; boolean clickInSpecificPosition = false; float x, y; x = y = 0.0f; if (arguments.length > 2) { startsWith = Boolean.parseBoolean(arguments[2]); clickInSpecificPosition = Boolean.parseBoolean(arguments[3]); if (clickInSpecificPosition) { x = Float.parseFloat(arguments[4]); y = Float.parseFloat(arguments[5]); } } boolean click = arguments[1].equals("true") ? true : false; command += "(" + arguments[0] + ", also click: " + (click ? "yes" : "no") + ")"; for (View view : solo.getViews()) { if (view == null || view.getContentDescription() == null) { continue; } if (view.getContentDescription() != null) { boolean condition; if (startsWith) { condition = view.getContentDescription().toString().startsWith(arguments[0]); } else { condition = view.getContentDescription().equals(arguments[0]); } if (condition && view.getVisibility() == View.VISIBLE) { try { if (click) { if (clickInSpecificPosition) { int[] location = new int[2]; view.getLocationOnScreen(location); int addX = (int) (x * ((float) view.getWidth())); int addY = (int) (y * ((float) view.getHeight())); this.solo.clickOnScreen(x + addX, y + addY); } else { clickOnView(view, false, false); } } } catch (Throwable e) { } String addToCommand = (click ? (": Clicked on view with description: " + arguments[0]) : ("View with description: " + arguments[0] + "exists")); result.setResponse(command + addToCommand); result.setSucceeded(true); return result; } } } result.setResponse(command + " :No view with description " + arguments[0] + " found"); result.setSucceeded(false); return result; } catch (Exception e) { result = handleException(command, e); } } return result; }