Size: a a a

Selenide на русском

2020 May 27

DS

Dmytro Stekanov in Selenide на русском
источник

S

Stanislav in Selenide на русском
Привет. Подскажите есть ли механизм поиска среди коллекции элементов? Мне надо найти текст среди элементов, которые попадут подусловия:
ElementsCollection operatorNames = $$(By.xpath(storageData.get("widget.operatorNameXpath")));
Но проблема в том, что количество элементов можетм меняться.

Можно ли сделать так, чтобы проверка длилась не более 30 секунд, при этом постоянно проверялись бы элементы на .getText() и если искомый текст найден - то выход.
источник

SC

Sergey Chevychelov in Selenide на русском
есть
источник

SC

Sergey Chevychelov in Selenide на русском
list.stream().filter()
внутрь фильтр указываешь свой предикат (лямбду)
источник

SC

Sergey Chevychelov in Selenide на русском
предикат - просто любое выражение которое возвращает булево
источник

SC

Sergey Chevychelov in Selenide на русском
типа filter(one -> one.getText().equals("строка"))
источник

SC

Sergey Chevychelov in Selenide на русском
после фильтрации нужно обратно превратить стрим в коллекцию
делается это так
filter(тра та та).collect(Collectors.toList())
источник

S

Stanislav in Selenide на русском
Ок, попробую. Спасибо. Я думал может в селенойд уже встроен такой  метод для коллекции
источник

AS

Andrei Solntsev in Selenide на русском
А чего его встраивать, если он уже в Java встроен.
источник

ON

Olzhas Nuralinov in Selenide на русском
Stanislav
Ок, попробую. Спасибо. Я думал может в селенойд уже встроен такой  метод для коллекции
$$(By.xpath(storageData.get("widget.operatorNameXpath")))
           .filter(Condition.text("my text"))
а так?
источник

ON

Olzhas Nuralinov in Selenide на русском
Olzhas Nuralinov
$$(By.xpath(storageData.get("widget.operatorNameXpath")))
           .filter(Condition.text("my text"))
а так?
конечно, не лучший способ (т.к. вот https://ru.selenide.org/2019/12/04/advent-calendar-effective-size-check/)
но через stream тоже самое происходит вроде как
источник

AS

Andrei Solntsev in Selenide на русском
Да, через stream то же самое
источник

AS

Andrei Solntsev in Selenide на русском
Простите, но нафига хранить xpath'и в мапе? Что мешает просто в константу засунуть?
источник

S

Stanislav in Selenide на русском
Поджскажите, вроде можно как-то XPATH на селеноидовские методы переделать?
А то у меня выходят такие выражения:
//div/div[contains(@class,'message manager') and contains(@class,'grouped')]/preceding::div/div[contains(@class,'message manager') and contains(@class,'grouped')]/preceding::div[contains(@class,'message manager') and contains(@class,'read')]//*[contains(@class,'message_operatorName') and contains(text(), 'оператор')]
источник

BO

Boris Osipov in Selenide на русском
источник

AV

Alexei Vinogradov in Selenide на русском
Stanislav
Поджскажите, вроде можно как-то XPATH на селеноидовские методы переделать?
А то у меня выходят такие выражения:
//div/div[contains(@class,'message manager') and contains(@class,'grouped')]/preceding::div/div[contains(@class,'message manager') and contains(@class,'grouped')]/preceding::div[contains(@class,'message manager') and contains(@class,'read')]//*[contains(@class,'message_operatorName') and contains(text(), 'оператор')]
Например изучить DOM и CSS Selectors, это сразу решит много вопросов.
источник

YK

Yasha Kramarenko in Selenide на русском
Вот кстати, пользуясь случаем))) можно изучать и тренироваться у меня на курсе 🙂 Там первые домашки об этом)))
Как раз сегодня старт. Хотя можно будет и присоединится к групе и после.
autotest.how/selenide-ru
источник

A

Amidosha (Константин... in Selenide на русском
дорого
источник

AS

Andrei Solntsev in Selenide на русском
:) а сколько должно быть, чтобы было недорого?
источник

A

Amidosha (Константин... in Selenide на русском
безвоздмездно
источник