Тест зависает после применения обхода для проблемы с вкладкой браузера

#javascript #jquery #cypress

Вопрос:

Из-за невозможности Cypress получить доступ к вкладке браузера, я должен использовать один из рекомендуемых обходных путей: мой тест изменяет целевой атрибут ссылки с target: "_blank" на target: "_self" . После перехода по ссылке целевая страница открывается на той же вкладке, что и ожидалось, но тест зависает без какого-либо уведомления и перестает работать. Окно браузера не может быть закрыто нажатием кнопки «X». Тест может быть прерван только кнопкой «Стоп» бегуна теста. Есть ли какое-либо решение этой проблемы?

Мне нужно добавить что-то важное к этому вопросу: похоже, причина в том, что после того, как страница открыта и проверена тестом, следующий за ней тест пытается вернуться на страницу, с которой предыдущий тест был перенаправлен на целевую страницу, и эта cy.visit() команда замораживает этот тест. Визуально никакой навигации не происходит.

На самом деле у меня есть 2 теста, и каждый из них работает нормально (например, если вы используете флаг «только» для любого из них), но если вы запустите оба, не имеет значения, в каком порядке, второй тест зависает:

 it('The first test', () =gt; {  cy.visit(startPageUrl);  // Redirect to page 1  cy.get(linkSelector1).invoke('removeAttr', 'target').click()  cy.get(selectorOfTheElementToBeAssertedOnThePage1).should('be.visible'); })  it('The second test', () =gt; {  cy.visit(startPageUrl); // The test freezes here  // Redirect to page 2  cy.get(linkSelector1).invoke('removeAttr', 'target').click()  cy.get(selectorOfTheElementToBeAssertedOnThePage2).should('be.visible'); })