找出元素集合是否在 Selenide 中可见的最短方法

The shortest way to find out if the collection of elements is visible in Selenide

我想知道是否有人知道一种获取元素集合可见性布尔值的简短而优美的方法。

我的意思是,如果我有一个 ElementsCollection 对象,我应该怎么做才能了解它是否可见,并将结果保存到布尔变量。

请注意,我使用的是硒化物,而不是裸硒。

可能有很多方法可以做到这一点。一种方法是 return 另一个 ElementsCollection,它只包含可见或不可见的元素(基于您选择的条件)。如:

ElementsCollection stuffThatMayBeVisible;
return stuffThatMayBeVisible.filterBy(Condition.visible);

这将使您现在可以使用您知道仅包含 visible/hidden 个 SelenideElements 的 ElementsCollection。

另一种更适合回答您的实际问题的方法是使用 for 循环并遍历每个 SelenideElement 并使用 .isDisplayed() 检查哪个 return 是布尔值。不过我建议不要使用这种方法,我给出的第一个例子要干净得多。

ElementsCollection stuffThatMayBeVisible;
List<Boolean> boolList; // what a great variable name

for (SelenideElement element : stuffThatMayBeVisible) {
  boolList.add(element.isDisplayed());
}
return boolList;