Size: a a a

Selenide на русском

2019 December 20

SR

Stas Rusakov in Selenide на русском
Max
ну кейсы уже готовые прилетают ))  ну там больше 20 продуктов не будет )
Кейсы можно пересматривать) но это бесконечная война)
Как костыль - for с индексом и доставать из коллекции с shouldHaveSize(greaterThan(20))
источник

SR

Stas Rusakov in Selenide на русском
Ну или больше 1 хотя бы
источник

SR

Stas Rusakov in Selenide на русском
Так или иначе костыль если не знать сколько продуктов будет
источник

M

Max in Selenide на русском
сейчас буду пробовать )) просто вручную я бы это проверил открывая CTRL + Клик, либо колисёком ) поэтому хотел так и в тесте запилить
источник

M

Max in Selenide на русском
а количество продуктов буду определять по размеру коллекцию
источник

M

Max in Selenide на русском
ну сделал в итоге вот так, вроде как работает, спасибо за помощь )

   ElementsCollection products = $$x(".locator")
   for (int x = 0; x < products.size(); x++) {
     products.get(x).click();
     $(".locator").shouldhave(text("any text"))
     back();
     products = $$x(".locator")
   }
источник

AS

Andrei Solntsev in Selenide на русском
Ну и что будет, если не найдено ни одного продукта?твой тест будет зелёным, но нихрена не протестирует.
источник

M

Max in Selenide на русском
Andrei Solntsev
Ну и что будет, если не найдено ни одного продукта?твой тест будет зелёным, но нихрена не протестирует.
это не полный код, перед этим есть проверка на наличие товара на листинге
источник

SR

Stas Rusakov in Selenide на русском
Можно еще добавить что определять размер по размеру коллекции - тоже вообще то не корректно)
Selenide очень быстрый) А коллекция может рисоваться "по частям" и Selenide может считать её размер до того как она прогрузится вся)
И это будет каждый раз при считывание)
Это принципиальная проблема с коллекциями. Поэтому в ней есть метод shouldHaveSize)
И поэтому так важна подготовка тестового окружения.
Так что на будущее большой совет - собраться с разработкой и ручным тестированием и обсудить эти моменты)
Работы от них потребуется не очень много, но тесты станут приносить гораздо больше пользы
источник

M

Max in Selenide на русском
спасибо за совет ) буду набираться опыта )
источник

SR

Stas Rusakov in Selenide на русском
Max
ну сделал в итоге вот так, вроде как работает, спасибо за помощь )

   ElementsCollection products = $$x(".locator")
   for (int x = 0; x < products.size(); x++) {
     products.get(x).click();
     $(".locator").shouldhave(text("any text"))
     back();
     products = $$x(".locator")
   }
И вы в этом коде пропускаете первый элемент кстати
Так задумано?
источник

M

Max in Selenide на русском
Stas Rusakov
И вы в этом коде пропускаете первый элемент кстати
Так задумано?
нет, это моя ошибка ) уже исправил ) спасибо )
источник

SR

Stas Rusakov in Selenide на русском
Не за что) Помните про Arrange)
источник

M

Max in Selenide на русском
Stas Rusakov
Не за что) Помните про Arrange)
😓👌
источник

SD

Serhii Danevych in Selenide на русском
Ребята, а подскажите пожалуйста как из айфрейма гетнуть текст? на него переключился, клики норм работают, а вот текст не гетает...
источник

SD

Serhii Danevych in Selenide на русском
Selenide.switchTo().defaultContent();
Selenide.switchTo().frame(element("[class=\"mfp-iframe\"]"));
Selenide.$("[for=\"route_segment1\"]").click();
Selenide.$("[for=\"route_segment1\"]").getText();
Selenide.switchTo().defaultContent();
источник

SD

Serhii Danevych in Selenide на русском
источник

RC

Roman Cherkasov in Selenide на русском
Serhii Danevych
Ребята, а подскажите пожалуйста как из айфрейма гетнуть текст? на него переключился, клики норм работают, а вот текст не гетает...
А как вы поняли, что текст элемента не удается получить?
источник

SD

Serhii Danevych in Selenide на русском
Ну я пробовал записать в стрингу
источник

SD

Serhii Danevych in Selenide на русском
Уже проблему решил екзекьютнув JS
источник