Skip to main content
Cypress App

Cypress.Keyboard

The Keyboard API allows you to access available Keys for use with cy.press() or to set the default values for how the .type() command is executed.

Syntax

Cypress.Keyboard.Keys(key)
Cypress.Keyboard.defaults(options)

Keys Arguments

key (String)

The key available for cy.press().

The following keys are supported:

ReferenceValue
Letters"a" through "z", "A" through "Z"
Numbers"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
Special Characters"!", "@", "#", '+', "€", "é", etc.
Cypress.Keyboard.Keys.UP"ArrowUp"
Cypress.Keyboard.Keys.DOWN"ArrowDown"
Cypress.Keyboard.Keys.LEFT"ArrowLeft"
Cypress.Keyboard.Keys.RIGHT"ArrowRight"
Cypress.Keyboard.Keys.ESC"Escape"
Cypress.Keyboard.Keys.END"End"
Cypress.Keyboard.Keys.HOME"Home"
Cypress.Keyboard.Keys.PAGEDOWN"PageDown"
Cypress.Keyboard.Keys.PAGEUP"PageUp"
Cypress.Keyboard.Keys.ENTER"Enter"
Cypress.Keyboard.Keys.TAB"Tab"
Cypress.Keyboard.Keys.BACKSPACE"Backspace"
Cypress.Keyboard.Keys.DELETE"Delete"
Cypress.Keyboard.Keys.INSERT"Insert"
Cypress.Keyboard.Keys.SPACE"Space"

defaults Arguments

options (Object)

An object containing the following:

OptionDefaultDescription
keystrokeDelay10The delay, in milliseconds, between keystrokes while typing with .type(). Set to 0 to remove the delay. Must be a non-negative number.

Examples

Press tab key

cy.press(Cypress.Keyboard.Keys.TAB)
cy.get('input.second').should('have.focus')

Slow down typing by increasing the keystroke delay

Cypress.Keyboard.defaults({
keystrokeDelay: 20,
})

Remove the keystroke delay

Cypress.Keyboard.defaults({
keystrokeDelay: 0,
})

Notes

Where to put Keyboard configuration

A great place to put this configuration is in the supportFile, since it is loaded before any test files are evaluated.

Set the keystroke delay in test configuration

The keystroke delay can also be set via test configuration, which can be useful when setting it for a single test or a subset of tests.

it(
'removes keystroke delay for all typing in this test',
{ keystrokeDelay: 0 },
() => {
cy.get('input').eq(0).type('fast typing')
cy.get('input').eq(1).type('more fast typing')
}
)

describe(
'removes keystroke delay in all tests in this suite',
{ keystrokeDelay: 0 },
() => {
it('types fast in the first input', () => {
cy.get('input').eq(0).type('fast typing')
})

it('types fast in the second input', () => {
cy.get('input').eq(1).type('more fast typing')
})
}
)

See also