Не пойму почему нажимается не та кнопка. Локатор правильный

Всем привет! Ужа второй день не могу понять поведение системы. Когда переходит на страницу, то упорно нажимается не та кнопку, хотя по локатору определяется определяется так, которая нужна в единственном экземпляре. Уже и паузы поставил, но всё равно не помогает.

Вот код нажатия на кнопку

SelenideElement buttonAdd = $("div.action-bar button.v-btn.theme--light.primary");

@Step(value = "Нажимаем кнопку Добавить")
    default MSGeneralElements clickButtonAdd(){
        buttonAdd.waitUntil(visible, 5000).click();
        return this;
    }

Вот локатор, видно, что кнопка та самая

А вот отчёт после тестирования. И здесь видно, что нажимается на та кнопка. Не понимаю пока такого поведения системы.

А вы в самом тесте просто попробуйте на этом этапе найти все элементы с этим локатором, тоже 1 элемент найдётся?

1 лайк

Пошёл по другому пити, переделал локатор

SelenideElement buttonAdd = $("div.action-bar button div");

и метод

    @Step(value = "Нажимаем кнопку Добавить")
    default void clickButtonAdd(){
        buttonAdd.shouldBe(text("Добавить")).click();
    }

Из второго скриншота возникает впечатление, что у кнопки “Настроить” появляется такой же селектор. И тест кликает по этой кнопке, как по первому элементу.

1 лайк

Похоже что вопрос уже решен
Из второго скриншота возникает впечатление, что у кнопки “Настроить” появляется такой же селектор. И тест кликает по этой кнопке, как по первому элементу.
Это иногда бывает на последних версиях софта. Или не обновился список требований. Не скажу точно как проблема называется , но с элементами списка связано. Лечится либо перезагрузкой или новым инсталом. Я обычно перегружаю, быстро и все работает сразу. Недавно тестил новый проект фирмы, продажа-аренда яхт и там кнопка Выбор для пользователей также иногда не срабатывала. Кнопка настроить имеет несколько вариантов использования, и там как раз проблема бывает, в смысле в ней

Да вот непонятно. Она то срабатывает, то не срабатывает. Буду дальше разбираться.

Дельный совет. Попробую)