我想知道是否有更好的方法来重构场景代码。 在搜索结果页面上选择“清除过滤器”按钮后,将保留一种活动状态:
<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-selected设为过滤色板的活动状态。
我目前有一个计数断言,可以看到如下所示选择了正确数量的过滤器:
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);
我只是想知道这是最佳实践还是有更好的方法来确认这一点?
答案 0 :(得分:2)
您可以使用以下指定的类直接获取按钮元素,而无需使用循环来检查按钮是否具有“已选中”类。
List<WebElement> elements = driver.findElements(By.cssSelector(".filter-options__item > button.is-selected"));
Assert.assertEquals(1, elements.size());