Cypress и условный оператор
Привет. Столкнулся с такой проблемой:
Есть веб приложение, в нём пользователи могут редактировать записи. Когда пользователь редактирует запись, она «блокируется» — и если другой пользователь пытается эту же запись отредактировать, появляется диалоговое окно с подтверждением того, что пользователь собирается «поломать» чужое редактирование.
То есть, при редактировании это диалоговое окно может появится, а может и нет. Поэтому, в скрипте нужно как то это отловить.
Пробовал такой костыль:
//if breaking lock dialog is shown const $BreakLock = Cypress.$('.mat-dialog-actions'); if ($BreakLock) { //confirm button click cy.get('.mat-dialog-actions button').eq(1).click(); }
Но он почему-то не работает, если окошко не показывается — тест валится.
Из документации по Cypress не понятно толком, как быть в этой ситуации.
UPD. Решение было найдено. Гугл мне выдал эту страничку при поиске решения другой проблемы, поэтому напишу его сюда — возможно, кому-то пригодится.
cy.get('body').then((body) => { if (body.find('mat-dialog-container').length > 0){ cy.xpath("//mat-dialog-container//*[text()='Yes']").click(); //нажимает Yes в появившемся окошке. } });
14 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів