Send Keys

Send a sequence of key strokes to an element

Example Usage

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

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

// Javascript
// example

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

# Ruby
# ruby_lib example
find_element(:accessibility_id, "SomeAccessibilityID").send_keys("Hello World!")

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

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

// C#
// TODO C# sample


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)


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
Python All
Javascript (WebdriverIO) All
Javascript (WD) All
Ruby All
C# All

HTTP API Specifications


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.



See Also