Size: a a a

Selenide на русском

2019 December 20

M

Max in Selenide на русском
возможно я что то не так понимаю, поправте если ошибаюсь )
источник

D

Denis in Selenide на русском
Max
К примеру, есть листинг с товарами
Нужно кликнуть на каждый товар что бы перейти на его продуктовую и проверить наличии отпредёлённого параметра на продуктовой

1. Получаю коллекцию элементов
2. Кликаю на первый товар
3. Проверяю нужный мне элемент и делаю back что бы вернуться на листинг
4. Хочу кликнуть на второй элемент(товар) из колеекции но получаю StaleException
ты сохраняешь список товаров в переменную?
источник

SR

Stas Rusakov in Selenide на русском
Может если после back сделать новый поиск коллекции - уйдет проблема?
источник

SR

Stas Rusakov in Selenide на русском
Переключаться на новую вкладку и обратно - явно тяжелее на мой вкус
источник

M

Max in Selenide на русском
Stas Rusakov
Может если после back сделать новый поиск коллекции - уйдет проблема?
сохраняю в ElementsCollection
источник

M

Max in Selenide на русском
потом её перебираю
источник

SR

Stas Rusakov in Selenide на русском
Попробуй
Мне кажется должно помочь
источник

NK

Nickolai Kinkolykh in Selenide на русском
Stas Rusakov
Может если после back сделать новый поиск коллекции - уйдет проблема?
100% ты возвращаешься на обновленную страницу и у элемента не тот айди
источник

D

Denis in Selenide на русском
Max
потом её перебираю
все что сохранил исчезло и перерисовалось
источник

D

Denis in Selenide на русском
нужно искать по новой как сказал Stas
источник

M

Max in Selenide на русском
понял, спасибо, сейчас так попробую
источник

NK

Nickolai Kinkolykh in Selenide на русском
Дергай через геттер который каждый раз возвращает коллекцию  таким образом ты каждый раз будешь искать её
источник

IV

Igor Vlasyuk in Selenide на русском
Andrei Solntsev
Селенид ждёт того, что ты попросишь ждать
аппиум возвращает вот что
Element: 'StaleElementReferenceException: io.appium.uiautomator2.common.exceptions.StaleElementReferenceException: The element 'By.AndroidUiAutomator: new UiSelector().className(android.widget.ProgressBar)' does not exist in DOM anymore'

Селенид говорит вот что
Element should be hidden {By.chained({By.AndroidUIAutomator: new UiSelector().className(android.widget.ProgressBar)})}

если does not exist in DOM anymore то условие hidden = true
источник

IV

Igor Vlasyuk in Selenide на русском
верно ?
источник

M

Max in Selenide на русском
Stas Rusakov
Может если после back сделать новый поиск коллекции - уйдет проблема?
имелось ввиду сделать так ? просто если я найденную колеекцию уже загнал в цикл, то по идее же новый её поиск в этом цикле не поможет, сделал набросок для примера

   ElementsCollection products = $$x(".locator");
   for (SelenideElement product : products) {
     product.click();
     $(".anylocator").shouldHave(text("any text"));
     back();
     product = $$x(".locator"); // делаю новый поиск
   }
источник

SR

Stas Rusakov in Selenide на русском
Max
имелось ввиду сделать так ? просто если я найденную колеекцию уже загнал в цикл, то по идее же новый её поиск в этом цикле не поможет, сделал набросок для примера

   ElementsCollection products = $$x(".locator");
   for (SelenideElement product : products) {
     product.click();
     $(".anylocator").shouldHave(text("any text"));
     back();
     product = $$x(".locator"); // делаю новый поиск
   }
Если переписывать именно этот код я бы применил старый добрый fori
источник

SR

Stas Rusakov in Selenide на русском
И доставал бы по индексу из $$(locator).get
источник

SR

Stas Rusakov in Selenide на русском
А вообще нужно кейс как таковой пересматривать возможно.
источник

SR

Stas Rusakov in Selenide на русском
Будет 1000 продуктов - 1000 раз будет делаться?
источник

M

Max in Selenide на русском
ну кейсы уже готовые прилетают ))  ну там больше 20 продуктов не будет )
источник