放弃循环中的某些类值 - 避免使用第二个元素

我正在循环使用日期选择器,但不希望返回所有值。放弃循环中的某些类值 - 避免使用第二个元素

如果“is-disabled”在类中,我不想选择它。

这是我目前使用的循环。

List<WebElement> days = driver.findElements(By.className("c-datepicker-calendar__day"));  

for(int i1=0; i1<days.size(); i1++) {

System.out.println(days.get(i1).getText());

}

不希望这些:

<a class="c-datepicker-calendar__day is-disabled ng-binding ng-scope" href="javascript:void(0)" ng-repeat="px in prevMonthDays" style="">31</a> 

希望这些:

<a class="c-datepicker-calendar__day ng-binding ng-scope" href="javascript:void(0)" ng-repeat="px in prevMonthDays" style="">31</a> 

回答:

你可以通过只使用一行来得到它。如果条件不需要检查。

List<WebElement> days = driver.findElements(By.cssSelector(".c-datepicker-calendar__day:not(.is-disabled)")); 

试试,看看是否可以使用此选择只能选择不上。是禁用

回答:

您可以检查类的每个元素和过滤器对那些符合您的条件的。例如...

List<WebElement> days = driver.findElements(By.className("c-datepicker-calendar__day"));  

for(int i1=0; i1<days.size(); i1++) {

WebElement day = days.get(i1);

if (!day.getAttribute("class").contains("is-disabled")) {

System.out.println(day.getText());

}

}

回答:

尝试使用下面的代码卡:

List<WebElement> days = driver.findElements(By.className("c-datepicker-calendar__day")); 

for (WebElement elem : days) {

String fullClassString = elem.getAttribute("class");

if(!fullClassString.contains("is-disabled")) {

System.out.println(elem.getText());

}

}

回答:

你可以使用流和过滤。

List<WebElement> filteredDays = days.stream() 

.filter(day -> !day.getAttribute("class").contains("is-disabled"))

.collect(Collectors.toList());

以上是 放弃循环中的某些类值 - 避免使用第二个元素 的全部内容, 来源链接: utcz.com/qa/263911.html

回到顶部