switch (payload.optString("direction")) {
case "up": template = scrollUpTemplate; break;
case "down": template = scrollDownTemplate; break;
case "left": template = scrollLeftTemplate; break;
case "right": template = scrollRightTemplate; break;
default: throw new WebDriverException("Invalid value for scrolling direction");
}
js = template.generate(sessionId, reference);
} else if (payload.has("name")) {
String name = payload.optString("name");
js = scrollToNameTemplate.generate(sessionId, reference, name);
} else if (payload.has("predicateString")) {
String predicateString = payload.optString("predicateString");
js = scrollToPredicateTemplate.generate(sessionId, reference, predicateString);
} else if (payload.has("toVisible")) {
js = scrollToVisibleTemplate.generate(sessionId, reference);
} else {
throw new WebDriverException("Unrecognised payload for ELEMENT_SCROLL");
}
setJS(js);
}