package net.serenitybdd.screenplay.jenkins.targets;
import com.google.common.base.Joiner;
import net.serenitybdd.screenplay.targets.Target;
import static java.lang.String.format;
public class Setting {
public static Target defining(String name) {
return Target.the(format("the '%s' field", name))
.locatedBy(lastElementMatching(either(xpathFor("input"), xpathFor("textarea"))))
.of(name);
}
private static String xpathFor(String fieldType) {
return format("//tr[td[contains(@class, 'setting-name') and contains(., '{0}')]]//%s", fieldType);
}
private static String either(String... xpaths) {
return Joiner.on(" | ").join(xpaths);
}
private static String lastElementMatching(String xpath) {
return format("(%s)[last()]", xpath);
}
}