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 InputAction extends Action { private String description; private String value; public InputAction() { super("INPUT", false, "Input text in a textbox", Category.UI, "element not found"); } @Override public ActionArgument[] getArguments() { ActionArgument elemArgument = new ActionArgument("element", ArgumentType.STRING); elemArgument.setValue(description); ActionArgument valueArgument = new ActionArgument("value", ArgumentType.STRING); valueArgument.setValue(value); return new ActionArgument[]{elemArgument, valueArgument}; } @Override public void setValues(Object[] values) { description = values[0].toString(); value = values[1].toString(); } @Override public String run(UiAutomatorTestCase uiAutomatorTestCase, Runtime runtime) { // TODO use both content-description and text //UiObject uiObject = new UiObject(new UiSelector().descriptionContains(description)); UiObject uiObject = new UiObject(new UiSelector().textContains(description)); try { uiObject.setText(value); } catch (UiObjectNotFoundException e) { e.printStackTrace(); return e.getMessage(); } return null; } }