Cypress | как сделать так, чтобы при изменении url тест не прерывался и не выкидывал в папку Specs?

Ссылка скопирована
1 ответ

Коллеги, приветствую.
Скажу сразу, я ни разу не гуру и вообще не автоматизатор, но для автоматизации рутинных проверок использую Cypress.

В общем возникла проблема, решение которой я никак не могу найти.
Есть маленький тестик, который проверяет наличие слова "Электронный" на странице.

it.("Название", () => {     cy.visit("someUrl");     cy.getEl("field-login").type(v.operrtest);     cy.getEl("field-password").type(v.operrtestpass);     cy.getEl("button-save").click();     cy.getEl("field-name-docSeries").type(v.validPassSer);     cy.wait(500);     cy.getEl("field-name-docNumber").type(v.validPassNum);     cy.contains("Найти").click();     cy.get(".preloader-container").should("not.exist");     cy.wait(2000);     //---Переход на новый фронт---     cy.contains("Перейти на новую версию").click();     //---ввод реквизитов---     cy.getEl("overflow-menu-button-overflow-menu-button").click();     cy.contains("Выпустить дебетовую карту").click(); 	 cy.contains("Запуск процесса").should("not.exist"); 	 cy.pause(); 	 cy.getEl("tariffPlan").type(v.tariffname).type("{enter}");     cy.getEl("cardTypepersonal").click();     cy.getEl("personalCardPaySystem")       .type(v.personalCardPaySystem)       .type("{enter}");     cy.getEl("personalCardCategory")       .type(v.personalCardCategory)       .type("{enter}");     cy.getEl("buttonComplete").click();     //---ЭФ корзины---     cy.contains("Единое заявление");     cy.getEl("button-goForward").click();     //---ЭФ печать---     cy.contains("Электронный");   });

it.("Название", () => { cy.visit("someUrl"); cy.getEl("field-login").type(v.operrtest); cy.getEl("field-password").type(v.operrtestpass); cy.getEl("button-save").click(); cy.getEl("field-name-docSeries").type(v.validPassSer); cy.wait(500); cy.getEl("field-name-docNumber").type(v.validPassNum); cy.contains("Найти").click(); cy.get(".preloader-container").should("not.exist"); cy.wait(2000); //---Переход на новый фронт--- cy.contains("Перейти на новую версию").click(); //---ввод реквизитов--- cy.getEl("overflow-menu-button-overflow-menu-button").click(); cy.contains("Выпустить дебетовую карту").click(); cy.contains("Запуск процесса").should("not.exist"); cy.pause(); cy.getEl("tariffPlan").type(v.tariffname).type("{enter}"); cy.getEl("cardTypepersonal").click(); cy.getEl("personalCardPaySystem") .type(v.personalCardPaySystem) .type("{enter}"); cy.getEl("personalCardCategory") .type(v.personalCardCategory) .type("{enter}"); cy.getEl("buttonComplete").click(); //---ЭФ корзины--- cy.contains("Единое заявление"); cy.getEl("button-goForward").click(); //---ЭФ печать--- cy.contains("Электронный"); });

Проблема возникает после того как мы доходим до строчки

cy.contains("Запуск процесса").should("not.exist");

cy.contains("Запуск процесса").should("not.exist");

Здесь мы ждём окончания загрузки прелоадера, после которого мы попадаем на новый URL и у нас открывается форма с инпутами, которые мы заполняем далее.
Но после того как указанная выше строка отрабатывает, нас просто выкидывает в интерфейсе Cypress в папку Specs.

Я не приложу ума как это исправить, может кто-то сталкивался с этой проблемой, прошу помощи.

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Алексей Денисов Ответ

Для того чтобы при изменении URL тест не прерывался и не выкидывал в папку Specs в Cypress, можно использовать опцию `baseUrl` в файле `cypress.json`.

Прежде всего, убедитесь, что в вашем файле `cypress.json` указан правильный `baseUrl`, который будет использоваться для всех ваших тестов.

```php
{
"baseUrl": "http://localhost:3000"
}
```

Если вы хотите изменить URL во время выполнения теста без прерывания и переноса в папку `Specs`, вам нужно использовать команду `cy.visit()` с указанием нового URL.

```php
cy.visit('http://example.com', { failOnStatusCode: false })
```

Опция `{ failOnStatusCode: false }` позволяет тесту продолжить выполнение даже в случае ошибки при загрузке новой страницы.

Если вам нужно выполнить несколько действий на странице перед изменением URL, вы можете использовать цепочку команд Cypress. Например, вы можете сначала нажать на кнопку, а затем перейти на новую страницу.

```php
cy.get('button').click()
cy.url().then(url => {
cy.visit(url.replace('oldURL', 'newURL'), { failOnStatusCode: false })
})
```

Таким образом, вы можете гибко управлять изменением URL в тестах Cypress, предотвращая их прерывание и перенос в папку `Specs`.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно