Ситуация:
Есть таблица. Сузим ее до двух столбцов.
В первом обычные конкретные цифры. 1, 4, 7, 99.
Во втором содержится ссылка на изображение, вида GetTrackCategoryImage?code={X}
,
где {X} цифры первого столбца. И каждой цифре первого столбца соответствует ссылка на изображение из второго. Но для номера 99 нет ссылки. Т.е. поле пустое.
Сначала я думал организовать DataDrive и сделать зависимость второго от первого. Но вероятно слишком тупой, чтобы нормально это сделать с проверкой на пустое поле. Вернее, думаю это займет опр. время, и конструкция получится громоздкой, но мне кажется это того не стоит и это неправильный подход.
Что я хотел сделать:
softly.assertThat(imgSrc).startsWith("/MPVK/ExcessFacts/GetTrackCategoryImage?code=").
.as("Категория изображения не соответствует категории ТС",
"Expected: code=" + ReportsFilterTest.trackCategory, "Actual: code=" + imgSrc);
Для взятия линка на изобр. используется:
for (WebElement anchorTagElement : ReportsFilterTest.trackCategoryImage) {
if (anchorTagElement != null) {
String imgSrc = anchorTagElement.getAttribute("src");
Здесь вопрос как вклинить сюда сравнение на containsOnly или containsExactlyInAnyOrder. Что-то вроде and{contains...}
после startsWith и игнорирует пустую ссылку на 99.
Или как можно выйти из данной ситуации?
Есть конечно вариант извлечь из столбца xpath, в котором содержится только ссылка startsWith. Но это такой себе костыль, который не проверит поля полностью.
И еще доп. вопрос как сослаться на аргументы в первой конструкции для contains, если они выглядят как, пример: .contains("12", "235").as(descrp, {что_написать_сюда})
. Где {что_написать_сюда} это какое-то ссылочное поле на “12”, “235”. Или обязательно надо засовывать “12”,“235” в какую-то переменную?
Если не понятно, можно уточнить.