Size: a a a

QA — Автоматизация

2020 September 23

СК

Серж Куройкин... in QA — Автоматизация
Если тебе нужен конкретный элемент, то во время написания тесты ты знаешь какой. По тексту или порядковый номер - это не важно
источник

AP

Artem Pokalchuk in QA — Автоматизация
У меня задание написать page object, и нужно кудато считывать все эти элементы динамически
источник

AP

Artem Pokalchuk in QA — Автоматизация
сначала нужно их туда записать, а потом напихаю методы, для поиска по имени, или номеру в блоке
источник

AP

Artem Pokalchuk in QA — Автоматизация
но сначала нужно грамотно записать их в лист, где я точно буду знать сколько их там
источник

СК

Серж Куройкин... in QA — Автоматизация
По условию задачи надо писать в лист или такое Ваше видение решения?
источник

AP

Artem Pokalchuk in QA — Автоматизация
Задача: создать page object, сначала я сделал их статически, описав все элементы через явный XPath, потом мне сказали, что этот список динамический и может расширяться, и нужно загружать их динамически
источник

AP

Artem Pokalchuk in QA — Автоматизация
принял решение динамически записывать в лист iWebElement
источник

СК

Серж Куройкин... in QA — Автоматизация
Ну вот, значит лист можно вообще опустить
источник

СК

Серж Куройкин... in QA — Автоматизация
Можно создать не конкретные объекты а методы, которые будут искать что-то в родительском элементе списка
источник

СК

Серж Куройкин... in QA — Автоматизация
У них будут свои ожидания, т.к. ищется конкретный элемент, а не список
источник

S1

Sceptic 1234 in QA — Автоматизация
можно написать xpath который подойдёт для любого элемента из списка, потом обращаться к первому через стринг.формат и [1] и в скобочки по циклу подставлять инкрементящиеся циферки и ждать каждый элемент и так пока не словишь но сач элемент эксепшн трайкетчем и в этот момент считать, что список догрузился.
чтобы сильно не увеличивать время выполнения теста - ждать explicit wait'ом
источник

S1

Sceptic 1234 in QA — Автоматизация
первое что в голову пришло. наверное не лучший вариант, но думаю рабочий
источник

AP

Artem Pokalchuk in QA — Автоматизация
Sceptic 1234
первое что в голову пришло. наверное не лучший вариант, но думаю рабочий
спасибо за мысль, я уже реализовал робочий вариант, но хочу понять как я могу это сделать идеально)
источник

i

iBljad in QA — Автоматизация
Artem Pokalchuk
есть лист, где я через FindElements добавляю, все элементы в блоке, в котором они находяться, потом foreach прохожусь, а там только первый
моя мысль была про такое (думаю, на C# нетрудно будет перевести)
AtomicInteger menuItemsCount = new AtomicInteger();
new FluentWait<>(driver)
   .withTimeout(Duration.ofSeconds(10))
   .pollingEvery(Duration.ofSeconds(2))
   .withMessage("Еще не всё")
   .until(e -> {
     var newMenuItemsCount = driver.findElements(By.cssSelector("menuLocator")).size();
     if (menuItemsCount.get() != newMenuItemsCount){
       menuItemsCount.set(newMenuItemsCount);
       return false;
     } else {
       return true;
     }
   });
источник

AP

Artem Pokalchuk in QA — Автоматизация
iBljad
моя мысль была про такое (думаю, на C# нетрудно будет перевести)
AtomicInteger menuItemsCount = new AtomicInteger();
new FluentWait<>(driver)
   .withTimeout(Duration.ofSeconds(10))
   .pollingEvery(Duration.ofSeconds(2))
   .withMessage("Еще не всё")
   .until(e -> {
     var newMenuItemsCount = driver.findElements(By.cssSelector("menuLocator")).size();
     if (menuItemsCount.get() != newMenuItemsCount){
       menuItemsCount.set(newMenuItemsCount);
       return false;
     } else {
       return true;
     }
   });
спасибо за хорошую мысль, боюсь мне не подойдёт данная реализация
источник

i

iBljad in QA — Автоматизация
Artem Pokalchuk
спасибо за хорошую мысль, боюсь мне не подойдёт данная реализация
Почему?
источник

AP

Artem Pokalchuk in QA — Автоматизация
iBljad
Почему?
немного сложная и уже есть рабочая, которая немного легче в понимании
источник

AP

Artem Pokalchuk in QA — Автоматизация
Серж Куройкин
Можно создать не конкретные объекты а методы, которые будут искать что-то в родительском элементе списка
а вот тут, думаю метод был бы к стати
источник

AP

Artem Pokalchuk in QA — Автоматизация
Серж Куройкин
Можно создать не конкретные объекты а методы, которые будут искать что-то в родительском элементе списка
Не мог бы немного помочь с реализацией данного метода? не писал ещё такие методы для динам.
источник

AP

Artem Pokalchuk in QA — Автоматизация
источник