Edit this Doc Send Keys

Send a sequence of key strokes to an element

Example Usage

MobileElement element = (MobileElement) driver.findElementByAccessibilityId("SomeAccessibilityID");
element.sendKeys("Hello world!");

self.driver.find_element_by_accessibility_id('SomeAccessibilityID').send_keys('Hello world!')

// webdriver.io example
driver.setValue("~SomeAccessibilityId");



// wd example
let element = await driver.elementByAccessibilityId("SomeAccessibilityID");
await element.type("Hello world!")

@driver.find_element(:accessibility_id, "SomeAccessibilityID").send_keys("Hello World!")

// TODO C# sample

$el = $this->byAccessibilityId('SomeAccessibilityID');
$el->setText('Hello world!');

Description

Any UTF-8 character may be specified, however, if the server does not support native key events, it should simulate key strokes for a standard US keyboard layout. The Unicode Private Use Area code points, 0xE000-0xF8FF, are used to represent pressable, non-text keys (see table below). (See Unicode document for information on Unicode characters)

Support

Appium Server

Platform Driver Platform Versions Appium Version Driver Version
iOS XCUITest 9.3+ 1.6.0+ All
UIAutomation 8.0 to 9.3 All All
Android Espresso ?+ 1.9.0+ All
UiAutomator2 ?+ 1.6.0+ All
UiAutomator 4.2+ All All
Mac Mac ?+ 1.6.4+ All
Windows Windows 10+ 1.6.0+ All

Appium Clients

Language Support Documentation
Java All seleniumhq.github.io
Python All selenium-python.readthedocs.io
Javascript (WebdriverIO) All
Javascript (WD) All github.com
Ruby All www.rubydoc.info
PHP All github.com
C# All github.com

HTTP API Specifications

Endpoint

POST /wd/hub/session/:session_id/element/value

URL Parameters

name description
session_id ID of the session to route the command to
element_id ID of the element to send keys to.

JSON Parameters

name type description
value array<string> The sequence of keys to type. An array must be provided. The server should flatten the array items to a single string to be typed.

Response

null

See Also