Я пытаюсь использовать Enum, чтобы установить конечный список возможных расстояний, при этом строка используется в качестве cssSelector в методе Selenium API:
public enum DistanceFrom {
FIVEMILES("a[data-reactid='.2cr8yg16ohc.2.1.0.2:$5.0']"),
TENMILES("a['.2cr8yg16ohc.2.1.0.2:$10.0.2']"),
TWENTYMILES("a['.2cr8yg16ohc.2.1.0.2:$20.0']"),
THIRTYMILES("a['.2cr8yg16ohc.2.1.0.2:$30.0']");
private String value;
DistanceFrom(String value){
this.value=value;
}
@Override
public String toString(){
return value;
}
}
Я использую это в тесте:
local.setDistance(DistanceFrom.FIVEMILES.toString());
, в котором setDistance является беглым методом в объекте страницы:
public LocalNewsPage setDistance(String value) {
WebElement setDistanceButton = driver.findElement(By.cssSelector(value));
setDistanceButton.click();
return this;
}
Почему я должен объявить:
local.setDistance(DistanceFrom.FIVEMILES.toString());
И не иметь возможности просто:
local.setDistance(DistanceFrom.FIVEMILES);