Cypress.io - сохранить значение с помощью JavaScript window.prompt - PullRequest
0 голосов
/ 18 февраля 2019

Я новичок в Кипарисе и у меня проблема.

Я приложение, у меня есть «Кнопка Сохранить».При нажатии на кнопку запускается JS window.prompt().Внутри подсказки вы вводите имя сохранения (например, «Сохранить от Джона») и нажимаете «ОК» - внутри подсказки.

Мне нужно покрыть эту историю пользователя тестом E2E в Cypress.io.

Проблема в том, что когда я нажимаю кнопку «Сохранить», кипарис замирает в событии Click (), когдаприглашение отображается.

it('Make a new save with JS prompt', () => {
   cy.get('#save-changes-button')
   .should('be.visible')
   .click() //here the prompt is displayed, cypress stop and wait for click() event finish
})

Могу ли я попросить о помощи?Я не нашел такого решения в Cypress.io Docs или где-либо еще.

1 Ответ

0 голосов
/ 19 февраля 2019

Хорошо, фактическая версия Cypress.io не поддерживает взаимодействие с window событиями.Способ обмана это метод cy.stub().

Это моё решение.Сценарий:

  1. Нажмите кнопку «Сохранить» в графическом интерфейсе.
  2. window.prompt().
  3. Введите имя сохранения (например, «Сохранено Томасом»).) в приглашении.
  4. Нажмите "OK" в приглашении и сохраните значение.

И код в Cypress:

    it('Save the value inside Prompt', () => {
            cy.window().then(win => {
                cy.stub(win, 'prompt').returns('The value you write inside prompt')
                cy.get('#save-changes-in-gui-button').click();
                //... Saved value assert
            })
    })

Cypress по умолчанию измененwindow.pompt() событие от заглушки и имитации нажмите «ОК».Это решение работает для меня сейчас.Надеюсь, это может помочь кому-то еще:)

...