Можно ли вводить 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, вы можете использовать заглушки, чтобы изменить поведение таких подсказок, как это
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')
Проверьте это для получения дополнительной информации
.name
- это просто пример того, где вы хотите получить ответное сообщение из приглашения. Вы можете использовать любой селектор там. Я отредактировал свой ответ там.