Можно ли ввести текстовое поле, отображаемое в приглашении на Cypress, и нажать кнопку «ОК»?

1

Можно ли вводить textbox отображаемое в alert с помощью команды Cypress и нажатия кнопки " ok в предупреждении. Приведенный ниже тест отображает сообщение с предупреждением, но ничего не делает.

describe('Type some text inside the textbox in an alert', function() {
  it.only('Type some text inside the textbox test', function() {
    cy.visit('http://sometesturl.com')
    const stub = cy.stub()
     cy.on ('window:alert', stub)
     cy
      .get('#pidforinput').click()
      .then(($stub) => {
      const myWin = $stub.find('input');
      cy.wrap(myWin ).type("This is a text box");
    })
  })
})

//Ниже мой js-код для отображения предупреждения и текстового поля внутри

function promptMessage() {
    var favColor = prompt("What is your favorite color?", "");
    if (favColor != null){      
    alert("Your favorite color is " + favColor);        
    }
    else {
    alert("You did not specify your favorite color");
    }
}

<input id="pidforinput" type="button" onclick="promptMessage()" value="Click here to specify your favorite color" />
Теги:
cypress

1 ответ

2

Так что прямо сейчас, согласно документации Cypress, вы можете использовать заглушки, чтобы изменить поведение таких подсказок, как это

cy.visit('http://localhost:3000', {
  onBeforeLoad(win) {
    cy.stub(win, 'prompt').returns('my custom message')
  }
})

cy.window().its('prompt').should('be.called')
cy.get('any_selector').should('have.value', 'my custom message')

Проверьте это для получения дополнительной информации

  • 1
    Я получаю следующее сообщение CypressError: Тайм-аут повторной попытки: Ожидается, что найден элемент: '.name', но он не найден.
  • 0
    Здесь .name - это просто пример того, где вы хотите получить ответное сообщение из приглашения. Вы можете использовать любой селектор там. Я отредактировал свой ответ там.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню