Skip to content
maudineormsby edited this page Jan 15, 2013 · 33 revisions

This is the initial subset of the Selenium WebDriver wire protocol that is currently supported in Appium. This provides the minimal set of navigation and element interactions to perform an automation test. Future versions will support more of the wire protocol. We’ll be matching WebDriver commands to those available in Apple’s UIAutomation documentation as close as possible.

Currently Supported

HTTP Method Path Summary status
GET /status Query the server’s current status. DONE
POST /session Create a new session. DONE
GET /session/:sessionId Retrieve the capabilities of the specified session. DONE
DELETE /session/:sessionId Delete the session. DONE
POST /session/:sessionId/frame Change focus to another frame on the page. DONE
POST /session/:sessionId/element Search for an element on the page, starting from the document root. PARTIALLY DONE1
POST /session/:sessionId/elements Search for multiple elements on the page, starting from the document root. PARTIALLY DONE1
POST /session/:sessionId/element/:id/click Click on an element. DONE
GET /session/:sessionId/element/:id/text Returns the visible text for the element. DONE
POST /session/:sessionId/element/:id/value Send a sequence of key strokes to an element. DONE
GET /session/:sessionId/element/:id/attribute/:name Get the value of an element’s attribute. DONE
GET /session/:sessionId/element/:id/location Determine an element’s location on the page. DONE
GET /session/:sessionId/element/:id/size Determine an element’s size in pixels. DONE
POST /session/:sessionId/element/:id/element Search for an element on the page, starting from the identified element. PARTIALLY DONE1
POST /session/:sessionId/element/:id/elements Search for multiple elements on the page, starting from the identified element. PARTIALLY DONE1
POST /session/:sessionId/execute Inject a snippet of !JavaScript into the page for execution in the context of the currently selected frame. DONE
GET /session/:sessionId/source Get the current page source. DONE
GET /session/:sessionId/orientation Get the current browser orientation. DONE
POST /session/:sessionId/orientation Set the browser orientation. DONE
POST /session/:sessionId/timeouts/implicit_wait Set the amount of time the driver should wait when searching for elements. DONE
POST /session/:sessionId/keys Send a sequence of key strokes to the active element. DONE
GET /session/:sessionId/screenshot Take a screenshot of the current page. DONE
GET /session/:sessionId/alert_text Gets the text of the currently displayed JavaScript `alert()`, `confirm()`, or `prompt()` dialog. DONE
POST /session/:sessionId/accept_alert Accepts the currently displayed alert dialog. DONE
POST /session/:sessionId/dismiss_alert Dismisses the currently displayed alert dialog. DONE

1 Find Element(s) only supports a tag name based locator strategy: driver.find_element_by_tag_name(“Button”) with an option Text value that is the text displayed on the page, like this: driver.find_element_by_tag_name(“Button/ENTER”)

Not Yet Implemented

HTTP Method Path Summary
GET /sessions Returns a list of the currently active sessions.
POST /session/:sessionId/timeouts Configure the amount of time that a particular type of operation can execute for before they are aborted and a Timeout error is returned to the client.
POST /session/:sessionId/timeouts/async_script Set the amount of time, in milliseconds, that asynchronous scripts executed by `/session/:sessionId/execute_async` are permitted to run before they are aborted and a Timeout error is returned to the client.
GET /session/:sessionId/window_handle Retrieve the current window handle.
GET /session/:sessionId/window_handles Retrieve the list of all window handles available to the session.
GET /session/:sessionId/url Retrieve the URL of the current page.
POST /session/:sessionId/url Navigate to a new URL.
POST /session/:sessionId/forward Navigate forwards in the browser history, if possible.
POST /session/:sessionId/back Navigate backwards in the browser history, if possible.
POST /session/:sessionId/refresh Refresh the current page.
POST /session/:sessionId/execute_async Inject a snippet of !JavaScript into the page for execution in the context of the currently selected frame.
GET /session/:sessionId/ime/available_engines List all available engines on the machine.
GET /session/:sessionId/ime/active_engine Get the name of the active IME engine.
GET /session/:sessionId/ime/activated Indicates whether IME input is active at the moment (not if it’s available.
POST /session/:sessionId/ime/deactivate De-activates the currently-active IME engine.
POST /session/:sessionId/ime/activate Make an engines that is available (appears on the listreturned by getAvailableEngines) active.
POST /session/:sessionId/window Change focus to another window.
DELETE /session/:sessionId/window Close the current window.
POST /session/:sessionId/window/:windowHandle/size Change the size of the specified window.
GET /session/:sessionId/window/:windowHandle/size Get the size of the specified window.
POST /session/:sessionId/window/:windowHandle/position Change the position of the specified window.
GET /session/:sessionId/window/:windowHandle/position Get the position of the specified window.
POST /session/:sessionId/window/:windowHandle/maximize Maximize the specified window if not already maximized.
GET /session/:sessionId/cookie Retrieve all cookies visible to the current page.
POST /session/:sessionId/cookie Set a cookie.
DELETE /session/:sessionId/cookie Delete all cookies visible to the current page.
DELETE /session/:sessionId/cookie/:name Delete the cookie with the given name.
GET /session/:sessionId/title Get the current page title.
GET /session/:sessionId/element/:id Describe the identified element.
POST /session/:sessionId/element/active Get the element on the page that currently has focus.
POST /session/:sessionId/element/:id/submit Submit a `FORM` element.
GET /session/:sessionId/element/:id/name Query for an element’s tag name.
POST /session/:sessionId/element/:id/clear Clear a `TEXTAREA` or `text INPUT` element’s value.
GET /session/:sessionId/element/:id/selected Determine if an `OPTION` element, or an `INPUT` element of type `checkbox` or `radiobutton` is currently selected.
GET /session/:sessionId/element/:id/enabled Determine if an element is currently enabled.
GET /session/:sessionId/element/:id/equals/:other Test if two element IDs refer to the same DOM element.
GET /session/:sessionId/element/:id/displayed Determine if an element is currently displayed.
GET /session/:sessionId/element/:id/location_in_view Determine an element’s location on the screen once it has been scrolled into view.
GET /session/:sessionId/element/:id/css/:propertyName Query the value of an element’s computed CSS property.
POST /session/:sessionId/alert_text Sends keystrokes to a JavaScript `prompt()` dialog.
POST /session/:sessionId/moveto Move the mouse by an offset of the specificed element.
POST /session/:sessionId/click Click any mouse button (at the coordinates set by the last moveto command).
POST /session/:sessionId/buttondown Click and hold the left mouse button (at the coordinates set by the last moveto command).
POST /session/:sessionId/buttonup Releases the mouse button previously held (where the mouse is currently at).
POST /session/:sessionId/doubleclick Double-clicks at the current mouse coordinates (set by moveto).
POST /session/:sessionId/touch/click Single tap on the touch enabled device.
POST /session/:sessionId/touch/down Finger down on the screen.
POST /session/:sessionId/touch/up Finger up on the screen.
POST session/:sessionId/touch/move Finger move on the screen.
POST session/:sessionId/touch/scroll Scroll on the touch screen using finger based motion events.
POST session/:sessionId/touch/scroll Scroll on the touch screen using finger based motion events.
POST session/:sessionId/touch/doubleclick Double tap on the touch screen using finger motion events.
POST session/:sessionId/touch/longclick Long press on the touch screen using finger motion events.
POST session/:sessionId/touch/flick Flick on the touch screen using finger motion events.
POST session/:sessionId/touch/flick Flick on the touch screen using finger motion events.
GET /session/:sessionId/location Get the current geo location.
POST /session/:sessionId/location Set the current geo location.
GET /session/:sessionId/local_storage Get all keys of the storage.
POST /session/:sessionId/local_storage Set the storage item for the given key.
DELETE /session/:sessionId/local_storage Clear the storage.
GET /session/:sessionId/local_storage/key/:key Get the storage item for the given key.
DELETE /session/:sessionId/local_storage/key/:key Remove the storage item for the given key.
GET /session/:sessionId/local_storage/size Get the number of items in the storage.
POST session/:sessionId/touch/flick Flick on the touch screen using finger motion events.
POST session/:sessionId/touch/flick Flick on the touch screen using finger motion events.
GET /session/:sessionId/location Get the current geo location.
POST /session/:sessionId/location Set the current geo location.
GET /session/:sessionId/local_storage Get all keys of the storage.
POST /session/:sessionId/local_storage Set the storage item for the given key.
DELETE /session/:sessionId/local_storage Clear the storage.
GET /session/:sessionId/local_storage/key/:key Get the storage item for the given key.
DELETE /session/:sessionId/local_storage/key/:key Remove the storage item for the given key.
GET /session/:sessionId/local_storage/size Get the number of items in the storage.
GET /session/:sessionId/session_storage Get all keys of the storage.
POST /session/:sessionId/session_storage Set the storage item for the given key.
DELETE /session/:sessionId/session_storage Clear the storage.
GET /session/:sessionId/session_storage/key/:key Get the storage item for the given key.
DELETE /session/:sessionId/session_storage/key/:key Remove the storage item for the given key.
GET /session/:sessionId/session_storage/size Get the number of items in the storage.
POST /session/:sessionId/log Get the log for a given log type.
GET /session/:sessionId/log/types Get available log types.
Clone this wiki locally