package com.mumux.androidtesting.actions.impl; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiObjectNotFoundException; import com.android.uiautomator.core.UiSelector; import com.android.uiautomator.testrunner.UiAutomatorTestCase; import com.mumux.androidtesting.actions.Action; import com.mumux.androidtesting.actions.argument.ActionArgument; import com.mumux.androidtesting.actions.argument.ArgumentType; @SuppressWarnings("unused") public class PressAction extends Action { private String description = null; public PressAction() { super("PRESS", false, "Press a button,tile, ....", Category.UI, "Element not Found"); } @Override public ActionArgument[] getArguments() { ActionArgument statusArgument = new ActionArgument("description", ArgumentType.STRING); statusArgument.setValue(description); return new ActionArgument[]{statusArgument}; } @Override public void setValues(Object[] values) { description = values[0].toString(); } @Override public String run(UiAutomatorTestCase uiAutomatorTestCase, Runtime runtime) { UiObject uiObject = getUiObject(description); if (uiObject == null) { return "UI Object '" + description + "' not found"; } try { uiObject.click(); } catch (UiObjectNotFoundException e) { e.printStackTrace(); } return null; } public static UiObject getUiObject(String description) { UiObject uiObject; UiSelector uiSelector = new UiSelector(); uiObject = new UiObject(uiSelector.text(description)); if (!uiObject.exists()) { uiObject = new UiObject(uiSelector.description(description)); } if (!uiObject.exists()) { uiObject = new UiObject(uiSelector.resourceId(description)); } if (!uiObject.exists()) { uiObject = null; } return uiObject; } }