Java Selenium - 在清除搜索过滤器后断言只有一个 CSS 类处于活动状态



我想知道是否有更好的方法来重构场景的代码。 在搜索结果页面上选择清除筛选器按钮时,这将保留一个活动状态:

<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>

选择的是滤镜色板上的活动状态。

我目前有一个计数断言,以查看选择正确数量的过滤器,如下所示:

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);

我只是想知道这是否是最佳实践,或者是否有更好的方法来确认这一点?

与其使用循环来检查按钮是否具有"is-selected"的类,不如直接获取按钮元素,如下所示指定的类。

List<WebElement> elements = driver.findElements(By.cssSelector(".filter-options__item > button.is-selected"));
Assert.assertEquals(1, elements.size());

最新更新