Столкнулась с проблемой. Я получаю значение в дропдауне , потом нужно взять в гриде все значения которые находятся по определенному локатору , вероятно сохранить их и поочереди сравнить с значением из дропдауна.
На реальном примере это выглядит так. В дропдауне есть красная машина, нахожу в гриде все красные машины и сравниваю.
Я нашла локатор, который который находит все значения “красная”.
например
[FindsBy(How = How.XPath, Using = “//mat-cell[contains(@class,‘mat-cell’)]”)]
Но как сделать так что бы кажлый раз брался из грида следующее значение - не понятно.
Подскажите пожалуйста хотя бы направление.
Самое топорное решение, создать 50 локаторов в стиле
[FindsBy(How = How.XPath, Using = “//mat-cell[3][contains(@class,‘mat-cell’)]”)]
и менять только цифру, фактически номер строки. Но это как-то совсем не хорошо
Поддерживаю @Valentin_G
Нужно использовать [FindsBy(How = How.XPath, Using = "XPath")] private IList<IWebElement> Elements;
или через Driver.FindElements(…);
А дальнейшее сравнение уже через Assert.True(elements1.SequenceEqual(elements2));
или через CollectionAssert.AreEquivalent(elements1, elements2);
Я так понимаю речь идет и фильтрации или сортировке в гриде, Например колонка цвет машины есть и есть фильтр по цвету машину.
Пишите по сути параметризированный тест, который принимает одно значение(если имена значения ячеек в гриде совпадают со значением выбранного фильтра) или 2 (если отличаются)
Получаете массив всех значение фильтра
массив передаете как параметризацию
Написали метод, который по имени фильтра выбирает значение
Фильтруете
Ждете обновления грида
Получаете все значение(текст) ячеек по имени колонки(должен быть метод)
Просто сравниваете, что каждое значение массива соответствует значению фильтра