Execute Script

Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame (Web context only)

Example Usage

// Java
((JavascriptExecutor) driver).executeScript("window.setTimeout(arguments[arguments.length - 1], 500);");

# Python
self.driver.execute_script(‘document.title’)

// Javascript
// webdriver.io example
var result = browser.execute(function(a, b, c, d) {
  // browser context - you may not access client or console
  return a + b + c + d;
}, 1, 2, 3, 4)

// node.js context - client and console are available
console.log(result.value); // outputs: 10



[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/web/execute.yml)
// wd example
await driver.execute('document.title');

# Ruby
# ruby_lib example
execute_script("document.title")


[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/web/execute.yml)
# ruby_lib_core example
@driver.execute_script("document.title")

# PHP
// TODO PHP sample

// C#
// TODO C# sample

Description

The executed script is assumed to be synchronous and the result of evaluating the script is returned to the client.

The script argument defines the script to execute in the form of a function body. The value returned by that function will be returned to the client. The function will be invoked with the provided args array and the values may be accessed via the arguments object in the order specified.

Arguments may be any JSON-primitive, array, or JSON object. JSON objects that define a WebElement reference will be converted to the corresponding DOM element. Likewise, any WebElements in the script result will be returned to the client as WebElement JSON objects.

For execute in the native context, see Mobile Commands.

Support

Appium Server

Platform Driver Platform Versions Appium Version Driver Version
iOS XCUITest None None None
UIAutomation None None None
Android UiAutomator2 None None None
Espresso None None None
UiAutomator None None None
Mac Mac None None None
Windows Windows None None None

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

GET /wd/hub/session/:session_id/execute_async

URL Parameters

name description
session_id ID of the session to route the command to

JSON Parameters

name type description
script string The script to execute
args array The script arguments

Response

The script result (any)

See Also