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
Cypress.Keyboard.Keys.TAB"Tab"

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​