Java Selenium - Утверждение, что только один класс CSS активен после очистки фильтров в поиске - PullRequest
0 голосов
/ 16 октября 2018

Я хочу знать, есть ли лучший способ рефакторинга моего кода для сценария.Когда кнопка «Очистить фильтры» выбрана на странице результатов поиска, это оставляет одно активное состояние:

<li class="filter-options__item">
    <button class="filter-swatch filter-swatch--orange is-selected" data-filter="" data-filter-name="orange" data-ga-category="Colours Option" data-ga-action="orange" data-ga-label="10">
       <p class="filter-swatch__name"> orange</p> </button></li>

Если выбрано значение is, то активное состояние на образце фильтра.

I в настоящее времяУ меня есть утверждение подсчета, чтобы увидеть, как правильно выбрано количество фильтров, как показано ниже:

int count = 0;
    List<WebElement> elements = driver.findElements(By.cssSelector(".filter-options__item > button"));

    for (Iterator<WebElement> i = elements.iterator(); i.hasNext();) {
        WebElement element = i.next();
        String attr = element.getAttribute("class");

        if(attr.contains("is-selected")) {
            count++;
        }
    }
    Assert.assertEquals(1, count);

Мне просто интересно, было ли это наилучшей практикой или был ли лучший способ подтвердить это?

1 Ответ

0 голосов
/ 16 октября 2018

Вместо использования цикла для проверки того, что кнопка имеет класс с 'is-selected', вы можете напрямую получить элемент кнопки с классом, указанным ниже, как указано ниже.

List<WebElement> elements = driver.findElements(By.cssSelector(".filter-options__item > button.is-selected"));
Assert.assertEquals(1, elements.size());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...