WebDriver

The W3C WebDriver API is a platform and language-neutral interface and wire protocol allowing programs or scripts to control the behavior of a web browser.

WebDriver enables developers to create automated tests that simulate user interaction. This is different from JavaScript unit tests because WebDriver has access to functionality and information that JavaScript running in the browser doesn't, and it can more accurately simulate user events or OS-level events. WebDriver can also manage testing across multiple windows, tabs and webpages in a single test session.

Here's how to get started with WebDriver for Microsoft Edge.

The Microsoft Edge implementation of WebDriver supports both the W3C WebDriver specification and the JSON Wire Protocol for backwards compatibility with existing tests.

Getting started with WebDriver for Microsoft Edge

Note

You can find help, report issues, and file feature requests at Microsoft Edge Feedback & Support.

Using WebDriver

To get started using WebDriver with Microsoft Edge, check out these samples:

  • C# code sample for opening a browser window, navigating to bing.com and searching for 'webdriver' (GitHub Gist).

WebDriver server command line flags

List of command line flags for the WebDriver server.

Name Description Available Release
host Host IP to use for the WebDriver server (default: localhost) 14393
port Port to use for the WebDriver server (default: 17556) 14393
package ApplicationUserModelId (AUMID) for the application to be launched by the WebDriver server 14393
verbose Outputs requests received and responses sent by the WebDriver server 14393
silent Outputs nothing 15063
version Outputs the version of MicrosoftWebDriver.exe 17763
w3c Use W3C WebDriver protocol (default option) 17763
jwp Use JSON Wire protocol 17763
cleanup Cleanup temporary data and registry keys set by the WebDriver server for --package. Other parameters are ignored 17763

W3C WebDriver

The support on a per command basis for the W3C WebDriver Specification.

Capabilities

Capability Key Status Available Release
Browser Name "browserName" Supported 17763
Browser Version "browserVersion" Supported 17763
Platform Name "platformName" Supported 17763
Accept Insecure TLS Certificates "acceptInsecureCerts" Not Supported N/A
Page Load Strategy "pageLoadStrategy" Supported 17763
Proxy Configuration "proxy" Not Supported N/A
Window Dimensioning/Positioning "setWindowRect" Supported 17763
Session Timeouts Configuration "timeouts" Supported 17763
Unhandled Prompt Behavior "unhandledPromptBehavior" Partially Supported 17763
InPrivate "ms:inPrivate" Supported 17763
Extension Paths "ms:extensionPaths" Supported 17763
Start Page "ms:startPage" Supported 17763

Locator Strategies

Locator Strategy Status Available Release
CSS Selectors Supported 17763
Link Text Supported 17763
Partial Link Text Supported 17763
Tag Name Supported 17763
XPath Supported 17763

Commands

HTTP Method URI Template Command Status Available Release
POST /session New Session Supported 17763
DELETE /session/{session id} Delete Session Supported 17763
GET /status Status Supported 17763
GET /session/{session id}/timeouts Get Timeouts Supported 17763
POST /session/{session id}/timeouts Set Timeouts Supported 17763
POST /session/{session id}/url Navigate To Supported 17763
GET /session/{session id}/url Get Current URL Supported 17763
POST /session/{session id}/back Back Supported 17763
POST /session/{session id}/forward Forward Supported 17763
POST /session/{session id}/refresh Refresh Supported 17763
GET /session/{session id}/title Get Title Supported 17763
GET /session/{session id}/window Get Window Handle Supported 17763
DELETE /session/{session id}/window Close Window Supported 17763
POST /session/{session id}/window Switch to Window Supported 17763
GET /session/{session id}/window/handles Get Window Handles Supported 17763
POST /session/{session id}/frame Switch To Frame Supported 17763
POST /session/{session id}/frame/parent Switch to Parent Frame Supported 17763
GET /session/{session id}/window/rect Get Window Rect Supported 17763
POST /session/{session id}/window/rect Set Window Rect Supported 17763
POST /session/{session id}/window/maximize Maximize Window Supported 17763
POST /session/{session id}/window/minimize Minimize Window Supported 17763
POST /session/{session id}/window/fullscreen Fullscreen Window Not Supported N/A
GET /session/{session id}/element/active Get Active Element Supported 17763
POST /session/{session id}/element Find Element Supported 17763
POST /session/{session id}/elements Find Elements Supported 17763
POST /session/{session id}/element/{element id}/element Find Element From Element Supported 17763
POST /session/{session id}/element/{element id}/elements Find Elements From Element Supported 17763
GET /session/{session id}/element/{element id}/selected Is Element Selected Supported 17763
GET /session/{session id}/element/{element id}/attribute/{name} Get Element Attribute Supported 17763
GET /session/{session id}/element/{element id}/property/{name} Get Element Property Supported 17763
GET /session/{session id}/element/{element id}/css/{property name} Get Element CSS Value Supported 17763
GET /session/{session id}/element/{element id}/text Get Element Text Supported 17763
GET /session/{session id}/element/{element id}/name Get Element Tag Name Supported 17763
GET /session/{session id}/element/{element id}/rect Get Element Rect Supported 17763
GET /session/{session id}/element/{element id}/enabled Is Element Enabled Supported 17763
POST /session/{session id}/element/{element id}/click Element Click Supported 17763
POST /session/{session id}/element/{element id}/clear Element Clear Supported 17763
POST /session/{session id}/element/{element id}/sendKeys Element Send Keys Supported 17763
GET /session/{session id}/source Get Page Source Supported 17763
POST /session/{session id}/execute/sync Execute Script Supported 17763
POST /session/{session id}/execute/async Execute Async Script Supported 17763
GET /session/{session id}/cookie Get All Cookies Supported 17763
GET /session/{session id}/cookie/{name} Get Named Cookie Supported 17763
POST /session/{session id}/cookie Add Cookie Supported 17763
DELETE /session/{session id}/cookie/{name} Delete Cookie Supported 17763
DELETE /session/{session id}/cookie Delete All Cookies Supported 17763
POST /session/{session id}/actions Perform Actions Supported 17763
DELETE /session/{session id}/actions Release Actions Supported 17763
POST /session/{session id}/alert/dismiss Dismiss Alert Supported 17763
POST /session/{session id}/alert/accept Accept Alert Supported 17763
GET /session/{session id}/alert/text Get Alert Text Supported 17763
POST /session/{session id}/alert/text Send Alert Text Supported 17763
GET /session/{session id}/screenshot Take Screenshot Supported 17763
GET /session/{session id}/screenshot/{element id} Take Element Screenshot Supported 17763

JSON Wire Protocol

The support on a per command basis for the JSON Wire Protocol.

Commands

HTTP Method Path Status Available Release
GET /status Supported 10240
POST /session Supported 10240
GET /sessions Supported 10240
GET /session/:sessionId Supported 10240
DELETE /session/:sessionId Supported 10240
POST /session/:sessionId/timeouts Supported 10240
POST /session/:sessionId/timeouts/async_script Not Supported N/A
POST /session/:sessionId/timeouts/implicit_wait Supported 10586
GET /session/:sessionId/window_handle Supported 10586
GET /session/:sessionId/window_handles Supported 10586
GET /session/:sessionId/url Supported 10240
POST /session/:sessionId/url Supported 10240
POST /session/:sessionId/forward Supported 10240
POST /session/:sessionId/back Supported 10240
POST /session/:sessionId/refresh Supported 10240
POST /session/:sessionId/execute Supported 10240
POST /session/:sessionId/execute_async Supported 10586
GET /session/:sessionId/screenshot Supported 10240
GET /session/:sessionId/ime/available_engines Not Supported N/A
GET /session/:sessionId/ime/active_engine Not Supported N/A
GET /session/:sessionId/ime/activated Not Supported N/A
POST /session/:sessionId/ime/deactivate Not Supported N/A
POST /session/:sessionId/ime/activate Not Supported N/A
POST /session/:sessionId/frame Supported 10586
POST /session/:sessionId/frame/parent Supported 10586
POST /session/:sessionId/window Supported 10586
DELETE /session/:sessionId/window Supported 10586
POST /session/:sessionId/window/:windowHandle/size Supported 10586
GET /session/:sessionId/window/:windowHandle/size Supported 10586
POST /session/:sessionId/window/:windowHandle/position Supported 10586
GET /session/:sessionId/window/:windowHandle/position Supported 10586
GET /session/:sessionId/window/:windowHandle/maximize Supported 10586
GET /session/:sessionId/cookie Supported 10586
POST /session/:sessionId/cookie Supported 10240
DELETE /session/:sessionId/cookie Supported 10586
DELETE /session/:sessionId/cookie/:name Supported 10240
GET /session/:sessionId/source Supported 10586
GET /session/:sessionId}/title Supported 10240
POST /session/:sessionId/element Supported 10586
POST /session/:sessionId/elements Supported 10586
POST /session/:sessionId/element/active Supported 10586
GET /session/:sessionId/element/:id Not Supported N/A
POST /session/:sessionId/element/:id/element Supported 10586
POST /session/:sessionId/element/:id/elements Supported 10586
POST /session/:sessionId/element/:id/click Supported 10240
POST /session/:sessionId/element/:id/submit Supported 10586
GET /session/:sessionId/element/:id/text Supported 10240
POST /session/:sessionId/element/:id/value Supported 10240
POST /session/:sessionId/keys Supported 10586
GET /session/:sessionId/element/:id/name Supported 10240
POST /session/:sessionId/element/:id/clear Supported 10240
GET /session/:sessionId/element/:id/selected Supported 10240
GET /session/:sessionId/element/:id/enabled Supported 10240
GET /session/:sessionId/element/:id/attribute/:name Supported 10240
GET /session/:sessionId/element/:id/equals/:other Supported 10586
GET /session/:sessionId/element/:id/displayed Supported 10240
GET /session/:sessionId/element/:id/location Supported 10586
GET /session/:sessionId/element/:id/location_in_view Supported 10586
GET /session/:sessionId/element/:id/size Supported 10586
GET /session/:sessionId/element/:id/css/:propertyName Supported 10240
GET /session/:sessionId/orientation Not Supported N/A
POST /session/:sessionId/orientation Not Supported N/A
GET /session/:sessionId/alert_text Supported 10240
POST /session/:sessionId/alert_text Supported 10586
POST /session/:sessionId/accept_alert Supported 10240
POST /session/:sessionId/dismiss_alert Supported 10240
POST /session/:sessionId/moveto Supported 10586
POST /session/:sessionId/click Supported 10240
POST /session/:sessionId/buttondown Supported 10586
POST /session/:sessionId/buttonup Supported 10586
POST /session/:sessionId/doubleclick Supported 10586
POST /session/:sessionId/touch/click Not Supported N/A
POST /session/:sessionId/touch/down Not Supported N/A
POST /session/:sessionId/touch/up Not Supported N/A
POST /session/:sessionId/touch/move Not Supported N/A
POST /session/:sessionId/touch/scroll Not Supported N/A
POST /session/:sessionId/touch/scroll Not Supported N/A
POST /session/:sessionId/touch/doubleclick Not Supported N/A
POST /session/:sessionId/touch/longclick Not Supported N/A
POST /session/:sessionId/touch/flick Not Supported N/A
POST /session/:sessionId/touch/flick Not Supported N/A
GET /session/:sessionId/location Supported 10586
POST /session/:sessionId/location Supported 10586
GET /session/:sessionId/local_storage Supported 10586
POST /session/:sessionId/local_storage Supported 10586
DELETE /session/:sessionId/local_storage Supported 10586
GET /session/:sessionId/local_storage/key/:key Supported 10586
DELETE /session/:sessionId/local_storage/key/:key Supported 10586
GET /session/:sessionId/local_storage/size Supported 10586
GET /session/:sessionId/session_storage Supported 10586
POST /session/:sessionId/session_storage Supported 10586
DELETE /session/:sessionId/session_storage Supported 10586
GET /session/:sessionId/session_storage/key/:key Supported 10586
DELETE /session/:sessionId/session_storage/key/:key Supported 10586
GET /session/:sessionId/session_storage/size Supported 10586
GET /session/:sessionId/log Not Supported N/A
GET /session/:sessionId/log/types Not Supported N/A
GET /session/:sessionId/application_cache/status Supported 10586