javascript - Hur man håller shift och använder piltangenter i Cypress
Jag har ett problem när jag använder Cypress type()-kommandot på det sätt jag vill.
Mitt mål
Jag vill kunna markera och ta bort text i ett textfält. Jag vill att detta görs genom att hålla nere shift-tangenten, trycka på högerpilstangenten flera gånger och sedan trycka på delete-tangenten.
Mitt försök
//hold shift and use right arrow
cy.type('{shift}{rightarrow}'.repeat(10));
//press delete
cy.type('{del}');Svar #1
Enligt den tillgängliga informationen kan du istället för repeat använda Cypress._.times loadash-metoden. Detta kommer att köra hela skrivkommandot 10 gånger.
Cypress._.times(10, () => {
cy.type('{shift}{rightarrow}')
})
Svar #2
Elementet behöver fokus innan piltangenterna används.
cy.get('#myinput')
.focus()
.type(Cypress._.repeat('{shift}{rightarrow}', 5))
.type('{del}')
Detta får markören att röra sig inom elementets text, men tyvärr förlänger det inte markeringen, så {del} tar bara bort ett element.
Du kan använda en intern inmatningsmetod istället för {shift}{rightarrow}, om detta passar ditt test
cy.get('#myinput')
.focus()
.then($el => $el[0].setSelectionRange(0, 5))
.type('{del}')
Att rensa helt
cy.get('#myinput')
.clear() // types {selectall}{del}
