{
  "doc": {
    "id": "api/commands/type",
    "title": "type | Cypress Documentation",
    "description": "Type into a DOM element in Cypress.",
    "section": "api",
    "source_path": "/llm/markdown/api/commands/type.md",
    "version": "ce02913654e2655ee63448bdc92bb92c7b46a619",
    "updated_at": "2026-04-22T19:37:51.587Z",
    "headings": [
      {
        "id": "api/commands/type#type",
        "text": "type",
        "level": 1
      },
      {
        "id": "api/commands/type#syntax",
        "text": "Syntax",
        "level": 2
      },
      {
        "id": "api/commands/type#usage",
        "text": "Usage",
        "level": 3
      },
      {
        "id": "api/commands/type#arguments",
        "text": "Arguments",
        "level": 3
      },
      {
        "id": "api/commands/type#yields-learn-about-subject-management",
        "text": "Yields Learn about subject management",
        "level": 3
      },
      {
        "id": "api/commands/type#examples",
        "text": "Examples",
        "level": 2
      },
      {
        "id": "api/commands/type#input-textarea",
        "text": "Input/Textarea",
        "level": 3
      },
      {
        "id": "api/commands/type#type-into-a-textarea",
        "text": "Type into a textarea.",
        "level": 4
      },
      {
        "id": "api/commands/type#type-into-a-login-form",
        "text": "Type into a login form",
        "level": 4
      },
      {
        "id": "api/commands/type#mimic-user-typing-behavior",
        "text": "Mimic user typing behavior",
        "level": 4
      },
      {
        "id": "api/commands/type#selecting-an-option-from-datalist",
        "text": "'Selecting' an option from datalist",
        "level": 4
      },
      {
        "id": "api/commands/type#tabindex",
        "text": "Tabindex",
        "level": 3
      },
      {
        "id": "api/commands/type#type-into-a-non-input-or-non-textarea-element-with-tabindex",
        "text": "Type into a non-input or non-textarea element with tabindex",
        "level": 4
      },
      {
        "id": "api/commands/type#date-inputs",
        "text": "Date Inputs",
        "level": 3
      },
      {
        "id": "api/commands/type#month-inputs",
        "text": "Month Inputs",
        "level": 3
      },
      {
        "id": "api/commands/type#week-inputs",
        "text": "Week Inputs",
        "level": 3
      },
      {
        "id": "api/commands/type#time-inputs",
        "text": "Time Inputs",
        "level": 3
      },
      {
        "id": "api/commands/type#key-combinations",
        "text": "Key Combinations",
        "level": 3
      },
      {
        "id": "api/commands/type#type-a-key-combination",
        "text": "Type a key combination",
        "level": 4
      },
      {
        "id": "api/commands/type#type-literal-or-characters",
        "text": "Type literal { or } characters",
        "level": 4
      },
      {
        "id": "api/commands/type#hold-down-modifier-key-and-type-a-word",
        "text": "Hold down modifier key and type a word",
        "level": 4
      },
      {
        "id": "api/commands/type#release-behavior",
        "text": "Release behavior",
        "level": 4
      },
      {
        "id": "api/commands/type#global-shortcuts",
        "text": "Global Shortcuts",
        "level": 3
      },
      {
        "id": "api/commands/type#use-keyboard-shortcuts-in-body",
        "text": "Use keyboard shortcuts in body",
        "level": 4
      },
      {
        "id": "api/commands/type#do-a-shift-click",
        "text": "Do a shift + click",
        "level": 4
      },
      {
        "id": "api/commands/type#combined-usage-with-cy-press",
        "text": "Combined Usage with cy.press()",
        "level": 3
      },
      {
        "id": "api/commands/type#form-navigation-with-keyboard",
        "text": "Form navigation with keyboard",
        "level": 4
      },
      {
        "id": "api/commands/type#options",
        "text": "Options",
        "level": 3
      },
      {
        "id": "api/commands/type#force-typing-regardless-of-its-actionable-state",
        "text": "Force typing regardless of its actionable state",
        "level": 4
      },
      {
        "id": "api/commands/type#notes",
        "text": "Notes",
        "level": 2
      },
      {
        "id": "api/commands/type#supported-elements",
        "text": "Supported Elements",
        "level": 3
      },
      {
        "id": "api/commands/type#actionability",
        "text": "Actionability",
        "level": 3
      },
      {
        "id": "api/commands/type#events",
        "text": "Events",
        "level": 3
      },
      {
        "id": "api/commands/type#when-element-is-not-in-focus",
        "text": "When element is not in focus",
        "level": 4
      },
      {
        "id": "api/commands/type#events-that-fire",
        "text": "Events that fire",
        "level": 4
      },
      {
        "id": "api/commands/type#event-firing",
        "text": "Event Firing",
        "level": 4
      },
      {
        "id": "api/commands/type#event-cancellation",
        "text": "Event Cancellation",
        "level": 4
      },
      {
        "id": "api/commands/type#preventing-mousedown-does-not-prevent-typing",
        "text": "Preventing mousedown does not prevent typing",
        "level": 4
      },
      {
        "id": "api/commands/type#key-events-table",
        "text": "Key Events Table",
        "level": 4
      },
      {
        "id": "api/commands/type#when-to-use-cy-press",
        "text": "When to use cy.press()",
        "level": 3
      },
      {
        "id": "api/commands/type#modifiers",
        "text": "Modifiers",
        "level": 3
      },
      {
        "id": "api/commands/type#modifier-effects",
        "text": "Modifier effects",
        "level": 4
      },
      {
        "id": "api/commands/type#form-submission",
        "text": "Form Submission",
        "level": 3
      },
      {
        "id": "api/commands/type#implicit-form-submission-behavior",
        "text": "Implicit form submission behavior",
        "level": 4
      },
      {
        "id": "api/commands/type#rules",
        "text": "Rules",
        "level": 2
      },
      {
        "id": "api/commands/type#requirements-learn-about-chaining-commands",
        "text": "Requirements Learn about chaining commands",
        "level": 3
      },
      {
        "id": "api/commands/type#assertions-learn-about-assertions",
        "text": "Assertions Learn about assertions",
        "level": 3
      },
      {
        "id": "api/commands/type#timeouts-learn-about-timeouts",
        "text": "Timeouts Learn about timeouts",
        "level": 3
      },
      {
        "id": "api/commands/type#command-log",
        "text": "Command Log",
        "level": 2
      },
      {
        "id": "api/commands/type#history",
        "text": "History",
        "level": 2
      },
      {
        "id": "api/commands/type#see-also",
        "text": "See also",
        "level": 2
      }
    ]
  },
  "content": {
    "type": "root",
    "children": [
      {
        "type": "heading",
        "depth": 1,
        "children": [
          {
            "type": "text",
            "value": "type"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Type into a DOM element."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "It is "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/retry-ability.md#Only-queries-are-retried",
            "children": [
              {
                "type": "text",
                "value": "unsafe"
              }
            ]
          },
          {
            "type": "text",
            "value": " to\nchain further commands that rely on the subject after `.type()`."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Syntax"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": ".type(text)\n.type(text, options)"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Usage"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Correct Usage"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('input').type('Hello, World') // Type 'Hello, World' into the 'input'"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Incorrect Usage"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.type('Welcome') // Errors, cannot be chained off 'cy'\ncy.clock().type('www.cypress.io') // Errors, 'clock' does not yield DOM elements"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Arguments"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "text (String)"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "The text to be typed into the DOM element."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Text passed to `.type()` may include any of the special character sequences\nbelow. These characters will pass along the correct `keyCode`, `key`, and\n`which` codes to any events issued during `.type()`. Some of the special\ncharacter sequences may perform actions during typing such as `{moveToEnd}`,\n`{moveToStart}`, or `{selectAll}`."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "To disable parsing special characters sequences, set the\n`parseSpecialCharSequences` option to `false`."
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Sequence"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Notes"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{{}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Types the literal `{` key"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{backspace}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Deletes character to the left of the cursor"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{del}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Deletes character to the right of the cursor"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{downArrow}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor down"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{end}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor to the end of the line"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{enter}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Types the Enter key"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{esc}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Types the Escape key"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{home}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor to the start of the line"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{insert}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Inserts character to the right of the cursor"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{leftArrow}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor left"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{moveToEnd}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor to end of typeable element"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{moveToStart}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor to the start of typeable element"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{pageDown}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Scrolls down"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{pageUp}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Scrolls up"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{rightArrow}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor right"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{selectAll}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Selects all text by creating a `selection range`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{upArrow}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Moves cursor up"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Note: For navigation keys like `Tab`, `Arrow` keys, and `Enter` in non-form contexts, consider using "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/api/commands/press.md",
            "children": [
              {
                "type": "text",
                "value": "`cy.press()`"
              }
            ]
          },
          {
            "type": "text",
            "value": " for more accurate native keyboard event simulation."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Text passed to `.type()` may also include any of these modifier character\nsequences:"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Sequence"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Notes"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{alt}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Activates the `altKey` modifier. Aliases: `{option}`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{ctrl}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Activates the `ctrlKey` modifier. Aliases: `{control}`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{meta}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Activates the `metaKey` modifier. Aliases: `{command}`, `{cmd}`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`{shift}`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Activates the `shiftKey` modifier."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "options (Object)"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Pass in an options object to change the default behavior of `.type()`."
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Option"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Default"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Description"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`animationDistanceThreshold`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/configuration.md#Actionability",
                    "children": [
                      {
                        "type": "text",
                        "value": "`animationDistanceThreshold`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "The distance in pixels an element must exceed over time to be "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md#Animations",
                    "children": [
                      {
                        "type": "text",
                        "value": "considered animating"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": "."
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`delay`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`10`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Delay after each keypress"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`force`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`false`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Forces the action, disables "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "#Assertions",
                    "children": [
                      {
                        "type": "text",
                        "value": "waiting for actionability"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`log`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`true`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Displays the command in the "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/open-mode.md#Command-Log",
                    "children": [
                      {
                        "type": "text",
                        "value": "Command log"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`parseSpecialCharSequences`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`true`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Parse special characters for strings surrounded by `{}`, such as `{esc}`. Set to `false` to type the literal characters instead"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`release`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`true`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Keep a modifier activated between commands"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`scrollBehavior`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/configuration.md#Actionability",
                    "children": [
                      {
                        "type": "text",
                        "value": "`scrollBehavior`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Viewport position to where an element "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md#Scrolling",
                    "children": [
                      {
                        "type": "text",
                        "value": "should be scrolled"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " before executing the command"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`timeout`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/configuration.md#Timeouts",
                    "children": [
                      {
                        "type": "text",
                        "value": "`defaultCommandTimeout`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Time to wait for `.type()` to resolve before "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "#Timeouts",
                    "children": [
                      {
                        "type": "text",
                        "value": "timing out"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "`waitForAnimations`"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/configuration.md#Actionability",
                    "children": [
                      {
                        "type": "text",
                        "value": "`waitForAnimations`"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Whether to wait for elements to "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md#Animations",
                    "children": [
                      {
                        "type": "text",
                        "value": "finish animating"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " before executing the command."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Yields "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/introduction-to-cypress.md#Subject-Management",
            "children": [
              {
                "type": "text",
                "value": "Learn about subject management"
              }
            ]
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`.type()` yields the same subject it was given."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "It is "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/retry-ability.md#Only-queries-are-retried",
                    "children": [
                      {
                        "type": "text",
                        "value": "unsafe"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": "\nto chain further commands that rely on the subject after `.type()`."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Examples"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Input/Textarea"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Type into a textarea."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('textarea').type('Hello world') // yields <textarea>"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Type into a login form"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/references/recipes.md#Logging-In",
            "children": [
              {
                "type": "text",
                "value": "Check out our example recipe of logging in by typing username and password in HTML web forms"
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Mimic user typing behavior"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Each keypress is delayed 10ms by default in order to simulate how a very fast\nuser types!"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('[contenteditable]').type('some text!')"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "'Selecting' an option from datalist"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "For 'selecting' an option, just type it into the input."
          }
        ]
      },
      {
        "type": "code",
        "lang": "html",
        "meta": null,
        "value": "<input list=\"fruit\" />\n<datalist id=\"fruit\">\n  <option>Apple</option>\n  <option>Banana</option>\n  <option>Cantaloupe</option>\n</datalist>"
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('input').type('Apple')"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Tabindex"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Type into a non-input or non-textarea element with tabindex"
          }
        ]
      },
      {
        "type": "code",
        "lang": "html",
        "meta": null,
        "value": "<body>\n  <div id=\"el\" tabindex=\"1\">This div can receive focus!</div>\n</body>"
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('#el').type('supercalifragilisticexpialidocious')"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Date Inputs"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Using `.type()` on a date input (`<input type=\"date\">`) requires specifying a\nvalid date in the format:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`yyyy-MM-dd` (e.g. `1999-12-31`)"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "This isn't exactly how a user would type into a date input, but is a workaround\nsince date input support varies between browsers and the format varies based on\nlocale. `yyyy-MM-dd` is the format required by\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://www.w3.org/TR/html/infrastructure.html#dates-and-times",
            "children": [
              {
                "type": "text",
                "value": "the W3 spec"
              }
            ]
          },
          {
            "type": "text",
            "value": "\nand is what the input's `value` will be set to regardless of browser or locale."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "`{upArrow}` and `{downArrow}` can increase and decrease the day value,\ndepending on \"step\" parameter provided. Using `.type()` with `{upArrow}` and `{downArrow}`\nmimics behavior of `stepUp` and `stepDown` input methods."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Special characters (`{leftArrow}`, `{selectAll}`, etc.) are not permitted."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Month Inputs"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Using `.type()` on a month input (`<input type=\"month\">`) requires specifying a\nvalid month in the format:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`yyyy-MM` (e.g. `1999-12`)"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "This isn't exactly how a user would type into a month input, but is a workaround\nsince month input support varies between browsers and the format varies based on\nlocale. `yyyy-MM` is the format required by\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://www.w3.org/TR/html/infrastructure.html#months",
            "children": [
              {
                "type": "text",
                "value": "the W3 spec"
              }
            ]
          },
          {
            "type": "text",
            "value": " and is what\nthe input's `value` will be set to regardless of browser or locale."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "`{upArrow}` and `{downArrow}` can increase and decrease the month value,\ndepending on \"step\" parameter provided. Using `.type()` with `{upArrow}` and `{downArrow}`\nmimics behavior of `stepUp` and `stepDown` input methods."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Special characters (`{leftArrow}`, `{selectAll}`, etc.) are not permitted."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Week Inputs"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Using `.type()` on a week input (`<input type=\"week\">`) requires specifying a\nvalid week in the format:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`yyyy-Www` (e.g. `1999-W23`)"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Where `W` is the literal character 'W' and `ww` is the number of the week\n(01-53)."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "This isn't exactly how a user would type into a week input, but is a workaround\nsince week input support varies between browsers and the format varies based on\nlocale. `yyyy-Www` is the format required by\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-week-string",
            "children": [
              {
                "type": "text",
                "value": "the W3 spec"
              }
            ]
          },
          {
            "type": "text",
            "value": "\nand is what the input's `value` will be set to regardless of browser or locale."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Special characters (`{leftArrow}`, `{selectAll}`, etc.) are not permitted."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "`{upArrow}` and `{downArrow}` can increase and decrease the week value,\ndepending on \"step\" parameter provided. Using `.type()` with `{upArrow}` and `{downArrow}`\nmimics behavior of `stepUp` and `stepDown` input methods."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Time Inputs"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Using `.type()` on a time input (`<input type=\"time\">`) requires specifying a\nvalid time in the format:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`HH:mm` (e.g. `01:30` or `23:15`)"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`HH:mm:ss` (e.g. `10:00:30`)"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`HH:mm:ss.SSS` (e.g. `12:00:00.384`)"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Where `HH` is 00-23, `mm` is 00-59, `ss` is 00-59, and `SSS` is 000-999."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "`{upArrow}` and `{downArrow}` can increase and decrease the seconds value,\ndepending on \"step\" parameter provided. Using `.type()` with `{upArrow}` and `{downArrow}`\nmimics behavior of `stepUp` and `stepDown` input methods."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Special characters (`{leftArrow}`, `{selectAll}`, etc.) are not permitted."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Key Combinations"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "When using special character sequences, it's possible to activate modifier keys\nand type key combinations, such as `CTRL+R` or `SHIFT+ALT+b`. Single key\ncombinations can be specified with `{modifier+key}` syntax."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "A `keydown` event is fired when a modifier is activated and a `keyup` event is\nfired when it is released."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "You can also use key combinations during\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/api/commands/click.md#Click-with-key-combinations",
            "children": [
              {
                "type": "text",
                "value": ".click()"
              }
            ]
          },
          {
            "type": "text",
            "value": ",\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/api/commands/rightclick.md#Right-click-with-key-combinations",
            "children": [
              {
                "type": "text",
                "value": ".rightclick()"
              }
            ]
          },
          {
            "type": "text",
            "value": " and\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/api/commands/dblclick.md#Double-click-with-key-combinations",
            "children": [
              {
                "type": "text",
                "value": ".dblclick()"
              }
            ]
          },
          {
            "type": "text",
            "value": " through\ntheir options. See each doc for more information."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Type a key combination"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// This is the same as a user holding down SHIFT and ALT, then pressing b\n// The modifiers are released before typing 'hello'\ncy.get('input').type('{shift+alt+b}hello')"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "When a modifier is specified on its own, it will remain activated for the\nduration of the `.type()` command, and is released when all subsequent\ncharacters are typed. However, "
          },
          {
            "type": "link",
            "title": null,
            "url": "#Options",
            "children": [
              {
                "type": "text",
                "value": "{release: false}"
              }
            ]
          },
          {
            "type": "text",
            "value": " can be passed as an\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "#Key-Combinations",
            "children": [
              {
                "type": "text",
                "value": "option"
              }
            ]
          },
          {
            "type": "text",
            "value": "."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// This is the same as a user holding down SHIFT and ALT, then typing 'hello'\n// The modifiers are held for the duration of the command.\ncy.get('input').type('{shift}{alt}hello')"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Type literal { or } characters"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "To disable parsing special characters sequences, set the\n`parseSpecialCharSequences` option to `false`."
          }
        ]
      },
      {
        "type": "code",
        "lang": "js",
        "meta": null,
        "value": "cy.get('#code-input')\n  // will not escape { } characters\n  .type('function (num) {return num * num;}', {\n    parseSpecialCharSequences: false,\n  })"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Hold down modifier key and type a word"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// all characters after {ctrl} will have 'ctrlKey'\n// set to 'true' on their key events\ncy.get('input').type('{ctrl}test')"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Release behavior"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "By default, modifiers are released after each type command."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// 'ctrlKey' will be true for each event while 'test' is typed\n// but false while 'everything' is typed\ncy.get('input').type('{ctrl}test').type('everything')"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "To keep a modifier activated between commands, specify `{release: false}` in the\noptions."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// 'altKey' will be true while typing 'foo'\ncy.get('input').type('{alt}foo', { release: false })\n// 'altKey' will also be true during 'get' and 'click' commands\ncy.get('button').click()"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Modifiers are automatically released between tests, even with\n`{release: false}`."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "it('has modifiers activated', () => {\n  // 'altKey' will be true while typing 'foo'\n  cy.get('input').type('{alt}foo', { release: false })\n})\n\nit('does not have modifiers activated', () => {\n  // 'altKey' will be false while typing 'bar'\n  cy.get('input').type('bar')\n})"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "To manually release modifiers within a test after using `{release: false}`, use\nanother `type` command and the modifier will be released after it."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// 'altKey' will be true while typing 'foo'\ncy.get('input').type('{alt}foo', { release: false })\n// 'altKey' will be true during the 'get' and 'click' commands\ncy.get('button').click()\n// 'altKey' will be released after this command\ncy.get('input').type('{alt}')\n// 'altKey' will be false during the 'get' and 'click' commands\ncy.get('button').click()"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Global Shortcuts"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "`.type()` requires a focusable element as the subject, since it's usually\nintended to type into something that's an input or textarea. Although there\nare a few cases where it's valid to \"type\" into something other than an input\nor textarea:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Keyboard shortcuts where the listener is on the `document` or `body`."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Holding modifier keys and clicking an arbitrary element."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "To support this, the `body` can be used as the DOM element to type into (even\nthough it's not a focusable element)."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Use keyboard shortcuts in body"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// all of the type events are fired on the body\ncy.get('body').type(\n  '{upArrow}{upArrow}{downArrow}{downArrow}{leftArrow}{rightArrow}{leftArrow}{rightArrow}ba'\n)"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Do a shift + click"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// execute a SHIFT + click on the first <li>\n// {release: false} is necessary so that\n// SHIFT will not be released after the type command\ncy.get('body').type('{shift}', { release: false }).get('li:first').click()"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Combined Usage with cy.press()"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "For comprehensive keyboard testing, combine `.type()` and `.press()`:"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Form navigation with keyboard"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "it('navigates form using keyboard only', () => {\n  cy.get('input[name=\"firstName\"]').type('Marcus')\n  cy.press(Cypress.Keyboard.Keys.TAB)\n  cy.get('input[name=\"lastName\"]').should('have.focus').type('Baker')\n  cy.press(Cypress.Keyboard.Keys.TAB)\n  cy.get('input[name=\"email\"]').should('have.focus').type('marcus@example.com')\n  cy.press(Cypress.Keyboard.Keys.ENTER)\n})"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Options"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Force typing regardless of its actionable state"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Forcing typing overrides the\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md#Forcing",
            "children": [
              {
                "type": "text",
                "value": "actionable checks"
              }
            ]
          },
          {
            "type": "text",
            "value": "\nCypress applies and will automatically fire the events."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('input[type=text]').type('Test all the things', { force: true })"
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Notes"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Supported Elements"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "^HTML `<body>` and `<textarea>` elements."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Elements with a defined `tabindex` attribute."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Elements with a defined `contenteditable` attribute."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "^HTML `<input>` elements with a defined `type` attribute of one of the\nfollowing:"
                  }
                ]
              },
              {
                "type": "list",
                "ordered": false,
                "start": null,
                "spread": false,
                "children": [
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`text`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`password`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`email`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`number`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`date`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`week`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`month`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`time`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`datetime-local`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`search`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`url`"
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "listItem",
                    "spread": false,
                    "checked": null,
                    "children": [
                      {
                        "type": "paragraph",
                        "children": [
                          {
                            "type": "text",
                            "value": "`tel`"
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Actionability"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "`.type()` is an \"action command\" that follows all the rules of\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md",
            "children": [
              {
                "type": "text",
                "value": "Actionability"
              }
            ]
          },
          {
            "type": "text",
            "value": "."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Events"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "When element is not in focus"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "If the element is currently not in focus, before issuing any keystrokes Cypress\nwill first issue a "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/api/commands/click.md",
            "children": [
              {
                "type": "text",
                "value": "`.click()`"
              }
            ]
          },
          {
            "type": "text",
            "value": " to the element to bring it\ninto focus."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Events that fire"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Once the element is in focus, Cypress will begin firing keyboard events."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "The following events will be fired based on what key was pressed identical to\nthe event spec:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`keydown`"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`keypress`"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`beforeinput`"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`textInput`"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`input`"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`keyup`"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Additionally `change` events will be fired either when the `{enter}` key is\npressed (and the value has changed since the last focus event), or whenever the\nelement loses focus. This matches browser behavior."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Events that should not fire on non input types such as elements with `tabindex`\ndo not fire their `textInput` or `input` events. Only typing into elements which\ncause the actual value or text to change will fire those events."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Event Firing"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "The following rules have been implemented that match real browser behavior (and\nthe spec):"
          }
        ]
      },
      {
        "type": "list",
        "ordered": true,
        "start": 1,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Cypress respects not firing subsequent events if previous ones were canceled."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Cypress will fire `keypress` only if that key is supposed to actually fire\n`keypress`."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Cypress will fire `textInput` only if typing that key would have inserted\nan actual character."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Cypress will fire `input` only if typing that key modifies or changes the\nvalue of the element."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Event Cancellation"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Cypress respects all default browser behavior when events are canceled."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// prevent the characters from being inserted\n// by canceling keydown, keypress, or textInput\n$('#username').on('keydown', (e) => {\n  e.preventDefault()\n})\n\n// Cypress will not insert any characters if keydown, keypress, or textInput\n// are cancelled - which matches the default browser behavior\ncy.get('#username').type('bob@gmail.com').should('have.value', '') // true"
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Preventing mousedown does not prevent typing"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "In a real browser, preventing `mousedown` on a form field will prevent it from\nreceiving focus and thus prevent it from being able to be typed into. Currently,\nCypress does not factor this in.\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://github.com/cypress-io/cypress/issues/new/choose",
            "children": [
              {
                "type": "text",
                "value": "open an issue"
              }
            ]
          },
          {
            "type": "text",
            "value": " if you\nneed this to be fixed."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Key Events Table"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Cypress prints out a table of key events that detail the keys that were pressed\nwhen clicking on type within the "
          },
          {
            "type": "link",
            "title": null,
            "url": "#Command-Log",
            "children": [
              {
                "type": "text",
                "value": "Command Log"
              }
            ]
          },
          {
            "type": "text",
            "value": ". Each character\nwill contain the `which` character code and the events that happened as a result\nof that key press."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Events that were `defaultPrevented` may prevent other events from firing and\nthose will show up as empty. For instance, canceling `keydown` will not fire\n`keypress` or `textInput` or `input`, but will fire `keyup` (which matches the\nspec)."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Additionally, events that cause a `change` event to fire (such as typing\n`{enter}`) will display with the `change` event column as `true`."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Any modifiers activated for the event are also listed in a `modifiers` column."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "When to use cy.press()"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "While `.type()` is excellent for typing text content, use "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/api/commands/press.md",
            "children": [
              {
                "type": "text",
                "value": "`cy.press()`"
              }
            ]
          },
          {
            "type": "text",
            "value": " for:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Navigation keys: `Tab`, `Arrow` keys, `Enter`, `Escape`"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Accessibility testing: Focus management and keyboard navigation"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Single key events: When you need native keyboard events rather than simulated ones"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Keys not supported by .type(): Such as `{tab}`"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// Use .type() for text input\ncy.get('input').type('Hello World')\n\n// Use .press() for navigation and special keys\ncy.press(Cypress.Keyboard.Keys.TAB)\ncy.press(Cypress.Keyboard.Keys.ENTER)"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Combining .type() and .press(): You can use both commands together for comprehensive keyboard testing:"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// Type text content\ncy.get('input.email').type('user@example.com')\n// Navigate with keyboard\ncy.press(Cypress.Keyboard.Keys.TAB)\ncy.get('input.password').type('password123')\n// Submit with keyboard\ncy.press(Cypress.Keyboard.Keys.ENTER)"
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Modifiers"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Modifier effects"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "In a real browser, if a user holds `SHIFT` and types `a`, a capital `A` will be\ntyped into the input. Currently, Cypress does not simulate that behavior."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Modifiers are simulated by setting their corresponding values to `true` for key\nand click events. So, for example, activating the `{shift}` modifier will set\n`event.shiftKey` to true for any key events, such as `keydown`."
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "// app code\ndocument.querySelector('input:first').addEventListener('keydown', (e) => {\n  // e.shiftKey will be true\n})\n\n// in test\ncy.get('input:first').type('{shift}a')"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "In the example above, a lowercase `a` will be typed, because that's the literal\ncharacter specified. To type a capital `A`, you can use `.type('{shift}A')` (or\n`.type('A')` if you don't care about the `shiftKey` property on any key events)."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "This holds true for other special key combinations as well (that may be\nOS-specific). For example, on OSX, typing `ALT + SHIFT + K` creates the special\ncharacter ``. Like with capitalization, `.type()` will not output ``, but the\nletter `k`."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Similarly, modifiers will not affect arrow keys or deletion keys. For example\n`{ctrl}{backspace}` will not delete an entire word.\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://github.com/cypress-io/cypress/issues/new",
            "children": [
              {
                "type": "text",
                "value": "open an issue"
              }
            ]
          },
          {
            "type": "text",
            "value": " if you need\nmodifier effects to be implemented."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Form Submission"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 4,
        "children": [
          {
            "type": "text",
            "value": "Implicit form submission behavior"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Cypress automatically matches the spec and browser behavior for pressing the\n`{enter}` key when the input belongs to a `<form>`."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "This behavior is defined here:\n"
          },
          {
            "type": "link",
            "title": null,
            "url": "https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#implicit-submission",
            "children": [
              {
                "type": "text",
                "value": "Form Implicit Submission"
              }
            ]
          },
          {
            "type": "text",
            "value": "."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "For instance the following will submit the form."
          }
        ]
      },
      {
        "type": "code",
        "lang": "html",
        "meta": null,
        "value": "<form action=\"/login\">\n  <input id=\"username\" />\n  <input id=\"password\" />\n  <button type=\"submit\">Log In</button>\n</form>"
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('#username').type('bob@burgers.com')\ncy.get('#password').type('password123{enter}')"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Because there are multiple `inputs` and one `submit` button, Cypress submits the\nform (and fires submit events) as well as a synthetic `click` event to the\n`button`."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "The spec defines the \"submit\" button as the first `input[type=submit]` or\n`button[type!=button]` from the form."
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Additionally Cypress handles these 4 other situations as defined in the spec:"
          }
        ]
      },
      {
        "type": "list",
        "ordered": true,
        "start": 1,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Does not submit a form if there are multiple inputs and no `submit` button."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Does not submit a form if the `submit` button is disabled."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Submits a form, but does not fire synthetic `click` event, if there is 1\n`input` and no `submit` button"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "Submits form and fires a synthetic `click` event to the `submit` when it\nexists."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "If the form's `submit` event is `preventedDefault` the form will not actually be\nsubmitted."
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Rules"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Requirements "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/introduction-to-cypress.md#Chains-of-Commands",
            "children": [
              {
                "type": "text",
                "value": "Learn about chaining commands"
              }
            ]
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`.type()` requires being chained off a command that yields DOM element(s)."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Assertions "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/introduction-to-cypress.md#Assertions",
            "children": [
              {
                "type": "text",
                "value": "Learn about assertions"
              }
            ]
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`.type()` will automatically wait for the element to reach an\n"
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "actionable state"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": "."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`.type()` will automatically "
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/retry-ability.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "retry"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": "\nuntil all chained assertions have passed."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 3,
        "children": [
          {
            "type": "text",
            "value": "Timeouts "
          },
          {
            "type": "link",
            "title": null,
            "url": "/llm/markdown/app/core-concepts/introduction-to-cypress.md#Timeouts",
            "children": [
              {
                "type": "text",
                "value": "Learn about timeouts"
              }
            ]
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`.type()` can time out waiting for the element to reach an\n"
                  },
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/core-concepts/interacting-with-elements.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "actionable state"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": "."
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "text",
                    "value": "`.type()` can time out waiting for assertions you've added to pass."
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "Command Log"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "Type into the input"
          }
        ]
      },
      {
        "type": "code",
        "lang": "javascript",
        "meta": null,
        "value": "cy.get('input[name=firstName]').type('Jane Lane')"
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "The commands above will display in the Command Log as:"
          }
        ]
      },
      {
        "type": "paragraph",
        "children": [
          {
            "type": "text",
            "value": "When clicking on `type` within the command log, the console outputs the\nfollowing:"
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "History"
          }
        ]
      },
      {
        "type": "table",
        "align": [
          null,
          null
        ],
        "children": [
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Version"
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Changes"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#13-14-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "13.14.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added support for `.type({upArrow})` and `.type({downArrow})` to work on date, month, week, time, datetime-local and range input types"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#6-1-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "6.1.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added option `scrollBehavior`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#5-6-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "5.6.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Support single key combination syntax"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#5-5-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "5.5.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Support `beforeinput` event"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#3-4-1",
                    "children": [
                      {
                        "type": "text",
                        "value": "3.4.1"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added `parseSpecialCharSequences` option"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#3-3-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "3.3.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added `{insert}`, `{pageup}` and `{pagedown}` character sequences"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#3-2-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "3.2.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added `{home}` and `{end}` character sequences"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-20-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.20.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Supports for typing in inputs of type `date`, `time`, `month`, and `week`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-17-1",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.17.1"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added `ctrl`, `cmd`, `shift`, and `alt` keyboard modifiers"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-16-3",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.16.3"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Supports for typing in elements with `tabindex` attribute"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-16-2",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.16.2"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added `{downarrow}` and `{uparrow}` character sequences"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-8-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.8.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Outputs Key Events Table to console on click"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-8-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.8.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added `{selectall}`, `{del}`, `{backspace}`, `{esc}`, `{{}`, `{enter}`, `{leftarrow}`, `{rightarrow}` character sequences"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-8-0",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.8.0"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added small delay (10ms) between each keystroke during `cy.type()`"
                  }
                ]
              }
            ]
          },
          {
            "type": "tableRow",
            "children": [
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/app/references/changelog.md#0-6-12",
                    "children": [
                      {
                        "type": "text",
                        "value": "0.6.12"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "tableCell",
                "children": [
                  {
                    "type": "text",
                    "value": "Added option `force`"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "type": "heading",
        "depth": 2,
        "children": [
          {
            "type": "text",
            "value": "See also"
          }
        ]
      },
      {
        "type": "list",
        "ordered": false,
        "start": null,
        "spread": false,
        "children": [
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/commands/press.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`cy.press()`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - For single key events and navigation"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/commands/focus.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`.focus()`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - Focus elements before typing"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/commands/clear.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`.clear()`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - Clear input values"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/commands/blur.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`.blur()`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - Remove focus from elements"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/commands/click.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`.click()`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - Click elements"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/commands/submit.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`.submit()`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - Submit forms"
                  }
                ]
              }
            ]
          },
          {
            "type": "listItem",
            "spread": false,
            "checked": null,
            "children": [
              {
                "type": "paragraph",
                "children": [
                  {
                    "type": "link",
                    "title": null,
                    "url": "/llm/markdown/api/cypress-api/keyboard-api.md",
                    "children": [
                      {
                        "type": "text",
                        "value": "`Cypress.Keyboard`"
                      }
                    ]
                  },
                  {
                    "type": "text",
                    "value": " - Keyboard constants"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "token_estimate": 4248
}