Как использовать строку в качестве переменной в классе, передавая строку в качестве параметра - PullRequest
0 голосов
/ 01 апреля 2020

В многоразовых я использовал переменную

WebElement yellow = Driver.findElement(By.cssSelector("#yel"))

public void color(String color) { //something
}

Теперь в моем основном классе, если я вызову метод ниже:

cls.color("yellow")

метод цвета должен использовать желтый webelement.

Поскольку у меня есть n типов цвета, я не хочу использовать условие if в методе цвета.

Могу ли я узнать, как использовать строковую переменную для идентификации соответствующего веб-элемента. Также я не хочу объявлять webelement как publi c.

1 Ответ

0 голосов
/ 01 апреля 2020

Если вы собираетесь делать то же, что и для поля yellow, для других цветов, и вам нужно искать их с помощью селектора CSS, тогда я предлагаю вам использовать Map, и что вы используете al oop, чтобы найти их все.

private Map<String, WebElement> colors = new HashMap<>();
{
    final String[] COLOR_MAPS = {
            "#yel", "yellow",
            "#red", "red",
            "#grn", "green" };
    for (int i = 0; i < COLOR_MAPS.length; i += 2)
        colors.put(COLOR_MAPS[i + 1], Driver.findElement(By.cssSelector(COLOR_MAPS[i])));
}
public void color(String color) {
    WebElement elem = colors.get(color);
    if (elem == null)
        throw new IllegalArgumentException("Unknown color: " + color);
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...