API Reference


Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame. The executed script is assumed to be synchronous.
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.

Under the hood, if the body param is a function it is converted to a string with <function>.toString(). Any references to your current scope are ignored.

To ensure cross-browser compatibility, the specified function should not be in ES6 format (i.e. () => {}). If the execution of the function fails, the first argument of the callback contains error information.

Parameters

Name Type description
body string|function

The function body to be injected.

args Array

An array of arguments which will be passed to the function.

callback
Optional
function

Optional callback function to be called when the command finishes.

Returns

Type description
* The script result.

Usage

 this.demoTest = function (browser) {
   browser.execute(function(imageData) {
     // resize operation
     return true;
   }, [imageData], function(result) {
     // result.value === true
   });
}

More info

w3.org/TR/webdriver#executing-script

API Reference

<%- content['expect-api'] %>
<%- content['expect-cookie'] %> <%- content['expect-element'] %> <% for (var methodName in api['expect.element']) { var method = api['expect.element'][methodName]; %>

<%- method.display %>Suggest edits

<%- method.descr %>

<% if (method.params.length) { %>
Parameters:
<% for (var j = 0; j < method.params.length; j++) { var param = method.params[j]; %> <% } %>
Name Type description
<%- param.name %><% if (param.optional) { %>
Optional<% } %>
<%- param.types %> <%- param.descr %>
<% } %> <% if (method.example) { %>
Usage:
<%- method.example %>
<% } %>
<% } %> <%- content['expect-elements'] %> <%- content['expect-title'] %> <%- content['expect-url'] %>
<%- content['assert-api'] %>
<% for (var i = 0; i < methods.assertions.length; i++) { var method = methods.assertions[i]; %>

assert.<%- method.name %>()

<%- method.descr %>

Parameters:
<% for (var j = 0; j < method.parameters.length; j++) { var param = method.parameters[j]; %> <% } %>
Name Type description
<%- param.name %><% if (param.optional) { %>
Optional<% } %>
<%- param.type %> <%- param.descr %>
Usage:
this.demoTest = function (browser) {
  <%- method.usage %>
};
<% } %>
<%- content['page-api'] %>
<%- content['commands-api'] %> <% var sectionsData = { 'protocol.elements' : [ 'elements-headline', 'Finding Elements', [ 'The commands listed below allow lookup of individual elements and collections of elements. Element retrieval searches are performed using a provided selector, in usually a CSS selector or, less often, an Xpath selector.', 'The convenience commands, such as .waitForElementVisible() can take a default locator strategy. More info on locator strategy can be found on the WebDriver page.', 'Each element has an associated web element reference (a UUID) that uniquely identifies the element across all browsing contexts.' ] ], 'protocol.elementinteraction' : [ 'elementinteraction-headline', 'Element Interaction' ], 'protocol.elementstate' : [ 'elementstate-headline', 'Element State', 'Details on how WebDriver checks if the element is displayed are available Element Displayedness page.' ], 'protocol.elementlocation' : [ 'elementlocation-headline', 'Element Location' ], 'protocol.document' : ['document-headline', 'Document Handling'], 'protocol.sessions' : [ 'sessions-headline', 'Sessions', 'A WebDriver session represents the connection between a client and a remote WebDriver server. Read more on WebDriver page.' ], 'protocol.navigation' : [ 'navigation-headline', 'Navigation', 'The commands in this section allow navigation to new URLs and introspection of the currently loaded url.' ], 'protocol.contexts' : ['contexts-headline', 'Window Related'], 'protocol.cookies' : ['cookies-headline', 'Cookies'], 'protocol.useractions' : ['useractions-headline', 'User Actions'], 'protocol.userprompts' : ['userprompts-headline', 'User Prompts'], 'protocol.screens' : ['screens-headline', 'Screen Capture'], 'protocol.mobile' : ['mobile-headline', 'Mobile Related'], 'protocol.utilities': ['utilities-headline', 'Utilities / Debugging'], 'protocol' : '' }; for (var section in sectionsData) { %> <% if (Array.isArray(sectionsData[section][2])) { var sectionEntry = sectionsData[section][2] || []; for (var i = 0; i < sectionEntry.length; i++) {%>

<%- sectionEntry[i] %>

<% } } else if (sectionsData[section][2]) { %>

<%- sectionsData[section][2] %>

<% } %> <% if (api[section]) { %> <% for (var i = 0; i < api[section].length; i++) { var method = api[section][i]; %>

.<%- method.name %>() Suggest edits

<%- method.descr %> <% if (method.params) {%>
Parameters:
<% for (var j = 0; j < method.params.length; j++) { var param = method.params[j]; %> <% } %>
Name Type description
<%- param.name %> <% if (param.optional) { %>
Optional<% } %>
<%- param.types %> <%- param.descr %>
<% } %> <% if (method.returns) { %>
Returns
Type description
<%- method.returns.type %> <%- method.returns.descr %>
<% } %>
<% } %> <% } %> <% } %>