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;
}
}