как проверить что список элементов не пустой"

421 views
Skip to first unread message

evgenm...@gmail.com

unread,
Jul 19, 2015, 8:37:50 AM7/19/15
to selen...@googlegroups.com
Добрый день!!!!
С Selenide начал знакомится совсем недавно, и сейчас есть необходимость проверить, что элемент не пустой, но в моем случае надо проверить список элементов.
Подскажите как поверить что список элементов не пустой.
есть метод CollectionCondition.empty, но он проверяет что не пустой.
У меня на странице есть элементы с одинаковым cssSelector. Проверку делаю таким образом.

public void fieldNoEmptyDirectory() {
$$(By.cssSelector(".form-control")).shouldBe(CollectionCondition.empty);
}

Спасибо!!!

andrei....@gmail.com

unread,
Jul 19, 2015, 10:07:27 AM7/19/15
to evgenm...@gmail.com, selenide-ru
Привет!
Самый простой вариант - использовать shouldNotBe:

  $$(By.cssSelector(".form-control")).shouldNotBe(CollectionCondition.empty);

Ещё проще вариант:
  $(".form-control").shouldBe(visible);
 
Но вообще советую проверить точный размер коллекции вэлементов. Вы ведь точно знаете, сколько их?


Sent from my HTC

Добрый день!!!!
С Selenide начал знакомится совсем недавно, и сейчас есть необходимость проверить, что элемент не пустой, но в моем случае надо проверить список элементов.
Подскажите как поверить что список элементов не пустой.
есть метод CollectionCondition.empty, но он проверяет что не пустой.
У меня на странице есть элементы с одинаковым cssSelector. Проверку делаю таким образом.

public void fieldNoEmptyDirectory() {
         $$(By.cssSelector(".form-control")).shouldBe(CollectionCondition.empty);
    }

Спасибо!!!

-- 
Вы получили это сообщение, поскольку подписаны на группу selenide-ru.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес selenide-ru...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.

Марчук Евгений

unread,
Jul 19, 2015, 12:10:54 PM7/19/15
to andrei....@gmail.com, selenide-ru
Количество элементов на страинце 5, это все текстовые поля с одним селектором .form-control, в них текст может быть различный, необходимо просто сделать проверку что элементы не пустые. Первый вариаант просто супер спасибо.

Если не сложно во время тестирования возникла вот такая ситуация.
ссылка на вопрос на форуме, может что посоветуете
http://software-testing.ru/forum/index.php?/topic/31267-selenide-jetty-maven-test-ne-startuet-test/
спасибо

--------------------------
evgenm...@gmail.com

Марчук Евгений

unread,
Jul 19, 2015, 12:14:18 PM7/19/15
to andrei....@gmail.com, selenide-ru
А метод точно есть такой, так как я не могу его найти
.shouldNotBe

--------------------------
evgenm...@gmail.com

evgenm...@gmail.com

unread,
Jul 19, 2015, 4:05:06 PM7/19/15
to selen...@googlegroups.com, evgenm...@gmail.com
Очень странно, но для списка элементов метод shouldNotBe не доступен, для конкретного элемента есть.

Andrei Solntsev

unread,
Jul 19, 2015, 5:01:24 PM7/19/15
to Марчук Евгений, selenide-ru
Упс.
Действительно, нет метода shouldNotBe для коллекций.

А и не надо. Даже если бы он был,  $$(By.cssSelector(".form-control")).shouldNotBe(CollectionCondition.empty); означало бы, что коллекция не пустая. А вам нужно  проверить, что сами элементы не пустые.


Это можно сделать либо так (java 7):
for (SelenideElement element : $$(".form-control")) {
element.shouldNotBe(empty);
}
либо так (Java 8):
$$(".form-control").stream().forEach(element -> element.shouldNotBe(empty));
Andrei Solntsev

19 июля 2015 г., 19:14 пользователь Марчук Евгений <evgenm...@gmail.com> написал:

evgenm...@gmail.com

unread,
Jul 20, 2015, 12:44:06 PM7/20/15
to selen...@googlegroups.com, evgenm...@gmail.com
Спасибо, очень помогло
Reply all
Reply to author
Forward
0 new messages