category / JsonWireProtocol method | wd methods |
GET /status Query the server's current status. |
status(cb) -> cb(err, status) |
POST /session Create a new session. |
init(desired, cb) -> cb(err, sessionID, capabilities) Initialize the browser. capabilities return may be absent, depending on driver. |
GET /sessions Returns a list of the currently active sessions. |
sessions(cb) -> cb(err, sessions)
Alternate strategy to get session capabilities from server session list: |
GET /session/:sessionId Retrieve the capabilities of the specified session. |
sessionCapabilities(cb) -> cb(err, capabilities) |
DELETE /session/:sessionId Delete the session. |
quit(cb) -> cb(err) Destroy the browser. |
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. |
setPageLoadTimeout(ms, cb) -> cb(err)
setCommandTimeout(ms, cb) -> cb(err) |
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. |
setAsyncScriptTimeout(ms, cb) -> cb(err) |
POST /session/:sessionId/timeouts/implicit_wait Set the amount of time the driver should wait when searching for elements. |
setImplicitWaitTimeout(ms, cb) -> cb(err) |
GET /session/:sessionId/window_handle Retrieve the current window handle. |
windowHandle(cb) -> cb(err, handle) |
GET /session/:sessionId/window_handles Retrieve the list of all window handles available to the session. |
windowHandles(cb) -> cb(err, arrayOfHandles) |
GET /session/:sessionId/url Retrieve the URL of the current page. |
url(cb) -> cb(err, url) |
POST /session/:sessionId/url Navigate to a new URL. |
get(url,cb) -> cb(err) Get a new url. |
POST /session/:sessionId/forward Navigate forwards in the browser history, if possible. |
forward(cb) -> cb(err) |
POST /session/:sessionId/back Navigate backwards in the browser history, if possible. |
back(cb) -> cb(err) |
POST /session/:sessionId/refresh Refresh the current page. |
refresh(cb) -> cb(err) |
POST /session/:sessionId/execute Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame. |
execute(code, args, cb) -> cb(err, result)
Safely execute script within an eval block, always returning:
Evaluate expression (using execute):
Safely evaluate expression, always returning (using safeExecute): |
POST /session/:sessionId/execute_async Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame. |
executeAsync(code, args, cb) -> cb(err, result)
Safely execute async script within an eval block, always returning: |
GET /session/:sessionId/screenshot Take a screenshot of the current page. |
takeScreenshot(cb) -> cb(err, screenshot) |
GET /session/:sessionId/ime/available_engines List all available engines on the machine. |
availableIMEEngines(cb) -> cb(err, engines) |
GET /session/:sessionId/ime/active_engine Get the name of the active IME engine. |
activeIMEEngine(cb) -> cb(err, activeEngine) |
GET /session/:sessionId/ime/activated Indicates whether IME input is active at the moment (not if it's available). |
activatedIMEEngine(cb) -> cb(err, active) |
POST /session/:sessionId/ime/deactivate De-activates the currently-active IME engine. |
deactivateIMEEngine(cb) -> cb(err) |
POST /session/:sessionId/ime/activate Make an engines that is available (appears on the listreturned by getAvailableEngines) active. |
activateIMEEngine(cb, engine) -> cb(err) |
POST /session/:sessionId/frame Change focus to another frame on the page. |
frame(frameRef, cb) -> cb(err) |
POST /session/:sessionId/window Change focus to another window. |
window(name, cb) -> cb(err) |
DELETE /session/:sessionId/window Close the current window. |
close(cb) -> cb(err) |
POST /session/:sessionId/window/:windowHandle/size Change the size of the specified window. |
windowSize(handle, width, height, cb) -> cb(err)
setWindowSize(width, height, handle, cb) -> cb(err) |
GET /session/:sessionId/window/:windowHandle/size Get the size of the specified window. |
getWindowSize(handle, cb) -> cb(err, size) getWindowSize(cb) -> cb(err, size) handle: window handle to get size (optional, default: 'current') |
POST /session/:sessionId/window/:windowHandle/position Change the position of the specified window. |
setWindowPosition(x, y, handle, cb) -> cb(err) setWindowPosition(x, y, cb) -> cb(err) x: the x-coordinate in pixels to set the window position y: the y-coordinate in pixels to set the window position handle: window handle to set position for (optional, default: 'current') |
GET /session/:sessionId/window/:windowHandle/position Get the position of the specified window. |
getWindowPosition(handle, cb) -> cb(err, position) getWindowPosition(cb) -> cb(err, position) handle: window handle to get position (optional, default: 'current') |
POST /session/:sessionId/window/:windowHandle/maximize Maximize the specified window if not already maximized. |
maximize(handle, cb) -> cb(err) |
GET /session/:sessionId/cookie Retrieve all cookies visible to the current page. |
allCookies() -> cb(err, cookies) |
POST /session/:sessionId/cookie Set a cookie. |
setCookie(cookie, cb) -> cb(err) cookie example: {name:'fruit', value:'apple'} Optional cookie fields: path, domain, secure, expiry |
DELETE /session/:sessionId/cookie Delete all cookies visible to the current page. |
deleteAllCookies(cb) -> cb(err) |
DELETE /session/:sessionId/cookie/:name Delete the cookie with the given name. |
deleteCookie(name, cb) -> cb(err) |
GET /session/:sessionId/source Get the current page source. |
source(cb) -> cb(err, source) |
GET /session/:sessionId/title Get the current page title. |
title(cb) -> cb(err, title) |
POST /session/:sessionId/element Search for an element on the page, starting from the document root. |
element(using, value, cb) -> cb(err, element)
elementByClassName(value, cb) -> cb(err, element) |
POST /session/:sessionId/elements Search for multiple elements on the page, starting from the document root. |
elements(using, value, cb) -> cb(err, elements)
elementsByClassName(value, cb) -> cb(err, elements)
Retrieve an element avoiding not found exception and returning null instead:
elementByClassNameOrNull(value, cb) -> cb(err, element)
Retrieve an element avoiding not found exception and returning undefined instead:
elementByClassNameIfExists(value, cb) -> cb(err, element)
Check if element exists:
hasElementByClassName(value, cb) -> cb(err, boolean) |
POST /session/:sessionId/element/active Get the element on the page that currently has focus. |
active(cb) -> cb(err, element) |
POST /session/:sessionId/element/:id/element Search for an element on the page, starting from the identified element. |
element.element(using, value, cb) -> cb(err, element)
element.elementByClassName(value, cb) -> cb(err, element) |
POST /session/:sessionId/element/:id/elements Search for multiple elements on the page, starting from the identified element. |
element.elements(using, value, cb) -> cb(err, elements)
element.elementsByClassName(value, cb) -> cb(err, elements) |
POST /session/:sessionId/element/:id/click Click on an element. |
clickElement(element, cb) -> cb(err)
element.click(cb) -> cb(err) |
POST /session/:sessionId/element/:id/submit Submit a FORM element. |
submit(element, cb) -> cb(err)
element.submit(cb) -> cb(err) |
GET /session/:sessionId/element/:id/text Returns the visible text for the element. |
text(element, cb) -> cb(err, text)
element.text(cb) -> cb(err, text)
Check if text is present:
element.textPresent(searchText, cb) -> cb(err, boolean) |
POST /session/:sessionId/element/:id/value Send a sequence of key strokes to an element. |
type(element, keys, cb) -> cb(err)
element.type(keys, cb) -> cb(err)
element.keys(keys, cb) -> cb(err) |
POST /session/:sessionId/keys Send a sequence of key strokes to the active element. |
keys(keys, cb) -> cb(err) Press keys (keys may still be down at the end of command). special key map: wd.SPECIAL_KEYS (see lib/special-keys.js) |
GET /session/:sessionId/element/:id/name Query for an element's tag name. |
getTagName(element, cb) -> cb(err, name)
element.getTagName(cb) -> cb(err, name) |
POST /session/:sessionId/element/:id/clear Clear a TEXTAREA or text INPUT element's value. |
clear(element, cb) -> cb(err)
element.clear(cb) -> cb(err) |
GET /session/:sessionId/element/:id/selected Determine if an OPTION element, or an INPUT element of type checkbox or radiobutton is currently selected. |
isSelected(element, cb) -> cb(err, selected)
element.isSelected(cb) -> cb(err, selected) |
GET /session/:sessionId/element/:id/enabled Determine if an element is currently enabled. |
isEnabled(element, cb) -> cb(err, enabled)
element.isEnabled(cb) -> cb(err, enabled) |
GET /session/:sessionId/element/:id/attribute/:name Get the value of an element's attribute. |
getAttribute(element, attrName, cb) -> cb(err, value)
element.getAttribute(attrName, cb) -> cb(err, value)
Get element value (in value attribute):
element.getValue(cb) -> cb(err, value) |
GET /session/:sessionId/element/:id/equals/:other Test if two element IDs refer to the same DOM element. |
element.equals(other, cb) -> cb(err, value)
equalsElement(element, other , cb) -> cb(err, value) |
GET /session/:sessionId/element/:id/displayed Determine if an element is currently displayed. |
isDisplayed(element, cb) -> cb(err, displayed)
element.isDisplayed(cb) -> cb(err, displayed) |
GET /session/:sessionId/element/:id/location Determine an element's location on the page. |
getLocation(element, cb) -> cb(err, location)
element.getLocation(cb) -> cb(err, location)
element.getLocationInView(cb) -> cb(err, location) |
GET /session/:sessionId/element/:id/location_in_view Determine an element's location on the screen once it has been scrolled into view. |
getLocationInView(element, cb) -> cb(err, location) |
GET /session/:sessionId/element/:id/size Determine an element's size in pixels. |
getSize(element, cb) -> cb(err, size)
element.getSize(cb) -> cb(err, size) |
GET /session/:sessionId/element/:id/css/:propertyName Query the value of an element's computed CSS property. |
getComputedCss(element, cssProperty , cb) -> cb(err, value)
element.getComputedCss(cssProperty , cb) -> cb(err, value) |
GET /session/:sessionId/orientation Get the current browser orientation. |
getOrientation(cb) -> cb(err, orientation) |
POST /session/:sessionId/orientation Set the browser orientation. |
setOrientation(orientation) -> cb(err) |
GET /session/:sessionId/alert_text Gets the text of the currently displayed JavaScript alert(), confirm(), or prompt() dialog. |
alertText(cb) -> cb(err, text) |
POST /session/:sessionId/alert_text Sends keystrokes to a JavaScript prompt() dialog. |
alertKeys(keys, cb) -> cb(err) |
POST /session/:sessionId/accept_alert Accepts the currently displayed alert dialog. |
acceptAlert(cb) -> cb(err) |
POST /session/:sessionId/dismiss_alert Dismisses the currently displayed alert dialog. |
dismissAlert(cb) -> cb(err) |
POST /session/:sessionId/moveto Move the mouse by an offset of the specificed element. |
moveTo(element, xoffset, yoffset, cb) -> cb(err)
element.moveTo(xoffset, yoffset, cb) -> cb(err) |
POST /session/:sessionId/click Click any mouse button (at the coordinates set by the last moveto command). |
click(button, cb) -> cb(err) Click on current element. Buttons: {left: 0, middle: 1 , right: 2} |
POST /session/:sessionId/buttondown Click and hold the left mouse button (at the coordinates set by the last moveto command). |
buttonDown(button ,cb) -> cb(err) button is optional. {LEFT = 0, MIDDLE = 1 , RIGHT = 2}. LEFT if not specified. |
POST /session/:sessionId/buttonup Releases the mouse button previously held (where the mouse is currently at). |
buttonUp(button, cb) -> cb(err) button is optional. {LEFT = 0, MIDDLE = 1 , RIGHT = 2}. LEFT if not specified. |
POST /session/:sessionId/doubleclick Double-clicks at the current mouse coordinates (set by moveto). |
doubleclick(cb) -> cb(err)
element.doubleClick(cb) -> cb(err) |
POST /session/:sessionId/touch/click Single tap on the touch enabled device. |
tap(element) -> cb(err)
element.tap(cb) -> cb(err) |
POST /session/:sessionId/touch/flick Flick on the touch screen using finger motion events. |
flick(xSpeed, ySpeed, swipe, cb) -> cb(err)
element.flick(xoffset, yoffset, speed, cb) -> cb(err) |
GET /session/:sessionId/location Get the current geo location. |
getGeoLocation(cb) -> cb(err, geoLocationObj) |
POST /session/:sessionId/location Set the current geo location. |
setGeoLocation(lat, lon, alt, cb) -> cb(err) |
POST /session/:sessionId/local_storage Set the storage item for the given key. |
setLocalStorageKey(key, value, cb) -> cb(err) # uses safeExecute() due to localStorage bug in Selenium |
DELETE /session/:sessionId/local_storage Clear the storage. |
clearLocalStorage(cb) -> cb(err) # uses safeExecute() due to localStorage bug in Selenium |
GET /session/:sessionId/local_storage/key/:key Get the storage item for the given key. |
getLocalStorageKey(key, cb) -> cb(err) # uses safeEval() due to localStorage bug in Selenium |
DELETE /session/:sessionId/local_storage/key/:key Remove the storage item for the given key. |
removeLocalStorageKey(key, cb) -> cb(err) # uses safeExecute() due to localStorage bug in Selenium |
POST /session/:sessionId/log Get the log for a given log type. |
log(logType, cb) -> cb(err, arrayOfLogs) |
GET /session/:sessionId/log/types Get available log types. |
logTypes(cb) -> cb(err, arrayOfLogTypes) |
GET /session/:sessionId/context Get the current context (mjsonWire). |
currentContext(cb) -> cb(err) |
POST /session/:sessionId/context Set the current context (mjsonWire). |
context(contextRef, cb) -> cb(err, context) |
GET /session/:sessionId/contexts Get a list of the available contexts (mjsonWire). |
contexts(cb) -> cb(err, handle) |
POST /session/:sessionId/touch/perform Perform touch action (mjsonWire). |
performTouchAction(touchAction) -> cb(err) |
POST /session/:sessionId/touch/multi/perform Perform multitouch action (mjsonWire). |
performMultiAction(element, multiAction) -> cb(err, touchStateObjects)
element.performMultiAction(actions) -> cb(err, touchStateObjects) |
POST /session/:sessionId/appium/device/shake Shake device (mjsonWire). |
shakeDevice(cb) -> cb(err)
shake(cb) -> cb(err) |
POST /session/:sessionId/appium/device/lock Lock device (mjsonWire). |
lockDevice(seconds, cb) -> cb(err)
lock(seconds, cb) -> cb(err)
unlockDevice(cb) -> cb(err)
unlock(cb) -> cb(err) |
POST /session/:sessionId/appium/device/keyevent Send key event to device (DEPRECATED) (mjsonWire). |
deviceKeyEvent(keycode, metastate, cb) -> cb(err)
pressDeviceKey(keycode, metastate, cb) -> cb(err) |
POST /session/:sessionId/appium/device/press_keycode Send key event to device (mjsonWire). |
pressKeycode(keycode, metastate, cb) -> cb(err) |
POST /session/:sessionId/appium/device/long_press_keycode Press and hold a particular key code on the device (mjsonWire). |
longPressKeycode(keycode, metastate, cb) -> cb(err) |
POST /session/:sessionId/appium/device/rotate Rotate device (mjsonWire). |
rotateDevice(element, opts, cb) -> cb(err)
rotate(element, opts, cb) -> cb(err)
element.rotate(opts, cb) -> cb(err) |
GET /session/:sessionId/appium/device/current_activity Get current activity (mjsonWire). |
getCurrentDeviceActivity(cb) -> cb(err)
getCurrentActivity(cb) -> cb(err) |
GET /session/:sessionId/appium/device/current_package Get current package (mjsonWire). |
getCurrentPackage(cb) -> cb(err) |
POST /session/:sessionId/appium/device/install_app Install app (mjsonWire). |
installAppOnDevice(appPath, cb) -> cb(err)
installApp(appPath, cb) -> cb(err) |
POST /session/:sessionId/appium/device/remove_app Remove app (mjsonWire). |
removeAppFromDevice(appId, cb) -> cb(err)
removeApp(appId, cb) -> cb(err) |
POST /session/:sessionId/appium/device/app_installed Check if the app is installed (mjsonWire). |
isAppInstalledOnDevice(bundleId, cb) -> cb(isInstalled, err)
isAppInstalled(bundleId, cb) -> cb(isInstalled, err) |
POST /session/:sessionId/appium/device/push_file Push file to device (mjsonWire). |
pushFileToDevice(pathOnDevice, base64Data, cb) -> cb(err)
pushFile(pathOnDevice, base64Data, cb) -> cb(err) |
POST /session/:sessionId/appium/device/pull_file Pull file from device (mjsonWire). |
pullFileFromDevice(pathOnDevice, cb) -> cb(base64EncodedData, err)
pullFile(pathOnDevice, cb) -> cb(base64EncodedData, err) |
POST /session/:sessionId/appium/device/pull_folder Pull folder from device (mjsonWire). |
pullFolderFromDevice(pathOnDevice, cb) -> cb(base64EncodedData, err)
pullFolder(pathOnDevice, cb) -> cb(base64EncodedData, err) |
POST /session/:sessionId/appium/device/toggle_airplane_mode Toggle airplane mode (mjsonWire). |
toggleAirplaneModeOnDevice(cb) -> cb(err)
toggleAirplaneMode(cb) -> cb(err)
toggleFlightMode(cb) -> cb(err) |
POST /session/:sessionId/appium/device/toggle_wifi Toggle wifi (mjsonWire). |
toggleWiFiOnDevice(cb) -> cb(err)
toggleWiFi(cb) -> cb(err) |
POST /session/:sessionId/appium/device/toggle_location_services Toggle location services (mjsonWire). |
toggleLocationServicesOnDevice(cb) -> cb(err)
toggleLocationServices(cb) -> cb(err) |
POST /session/:sessionId/appium/device/toggle_data Toggle data (mjsonWire). |
toggleDataOnDevice(cb) -> cb(err)
toggleData(cb) -> cb(err) |
POST /session/:sessionId/appium/device/start_activity Start an Android activity (mjsonWire). |
startActivity(options, cb) -> cb(err) Start an arbitrary Android activity during a session. The 'options' parameter should implement the interface {appPackage, appActivity, [appWaitPackage], [appWaitActivity]}. |
POST /session/:sessionId/appium/device/get_clipboard Get the content of the system clipboard (mjsonWire). |
getClipboard(contentType, cb) -> cb(err) Return clipboard content as base64-encoded string or an empty string if the clipboard is empty The type of the content to get: plaintext, image, url. Android supports only plaintext |
POST /session/:sessionId/appium/device/set_clipboard Set the content of the system clipboard (mjsonWire). |
setClipboard(content, contentType, cb) -> cb(err) Content is the actual base64 encoded clipboard content Supported content type: plaintext, image, url. Android supports only plaintext |
POST /session/:sessionId/appium/app/launch Launch app (mjsonWire). |
launchApp(cb) -> cb(err) |
POST /session/:sessionId/appium/app/close Close app (mjsonWire). |
closeApp(cb) -> cb(err) |
POST /session/:sessionId/appium/app/reset Reset app (mjsonWire). |
resetApp(cb) -> cb(err) |
POST /session/:sessionId/appium/app/background Background app (mjsonWire). |
backgroundApp(seconds, cb) -> cb(err) |
POST /session/:sessionId/appium/app/end_test_coverage End test coverage (mjsonWire). |
endTestCoverageForApp(intentToBroadcast, pathOnDevice) -> cb(base64Data,err)
endTestCoverage(intentToBroadcast, pathOnDevice) -> cb(base64Data,err)
endCoverage(intentToBroadcast, pathOnDevice) -> cb(base64Data,err) |
POST /session/:sessionId/appium/app/complex_find Find within app (mjsonWire). |
complexFindInApp(selector) -> cb(element(s))
complexFind(selector) -> cb(element(s)) |
POST /session/:sessionId/appium/app/strings Retrieve app strings (mjsonWire). |
getAppStrings(cb) -> cb(err) |
POST /session/:sessionId/appium/element/:elementId?/value Set element immediate value (mjsonWire). |
setImmediateValueInApp(element, value, cb) -> cb(err)
setImmediateValue(element, value, cb) -> cb(err)
element.setImmediateValueInApp(value, cb) -> cb(err)
element.setImmediateValue(value, cb) -> cb(err) |
GET /session/:sessionId/network_connection Get appium selendroid network connection type (mjsonWire). |
getNetworkConnection(cb) -> cb(err, networkConnectionInfo) |
POST /session/:sessionId/network_connection Set appium selendroid network connection type (mjsonWire). |
setNetworkConnection(type, cb) -> cb(err) |
GET /session/:sessionId/appium/device/is_keyboard_shown Whether or not the soft keyboard is shown (mjsonWire). |
isKeyboardShown() -> cb(err) |
POST /session/:sessionId/appium/device/hide_keyboard Hide keyboard (mjsonWire). |
hideKeyboard() -> cb(err) hideKeyboard(keyName, cb) -> cb(err) hideKeyboard({strategy: 'pressKey', key:'<key>'}) -> cb(err) hideKeyboard({strategy: 'tapOutside'}) -> cb(err) |
POST /session/:sessionId/appium/device/open_notifications Open Notifications (mjsonWire). |
openNotifications(cb) -> cb(err) |
POST /session/:sessionId/appium/performanceData/types Get the types of system state which is supported like cpu, memory, network traffic, and battery (mjsonWire). |
getSupportedPerformanceDataTypes(cb) -> cb(err) |
POST /session/:sessionId/appium/getPerformanceData Get the system state like cpu, memory, network traffic, and battery (mjsonWire). |
getPerformanceData(packageName, dataType, dataReadTimeout, cb) -> cb(err) |
POST /session/:sessionId/appium/simulator/touch_id TouchID (mjsonWire). |
touchId(cb) -> cb(err) |
extra |
attach(sessionID, cb) -> cb(err) Connect to an already-active session. |
extra |
detach(cb) -> cb(err) Detach from the current session. |
extra | |
extra |
Retrieves the current session id. getSessionId(cb) -> cb(err, sessionId) getSessionId() |
extra |
Opens a new window (using Javascript window.open): newWindow(url, name, cb) -> cb(err) newWindow(url, cb) -> cb(err) name: optional window name Window can later be accessed by name with the window method, or by getting the last handle returned by the windowHandles method. |
extra |
windowName(cb) -> cb(err, name) |
extra |
configureHttp(opts) opts example: {timeout:60000, retries: 3, 'retryDelay': 15, baseUrl='http://example.com/'} more info in README. |
extra |
waitFor(asserter, timeout, pollFreq, cb) -> cb(err, return_value) timeout and pollFreq are optional (default 1000ms/200ms) waitFor(opts, cb) -> cb(err) opts with the following fields: timeout, pollFreq, asserter. asserter like: function(browser , cb) -> cb(err, satisfied, return_value) |
extra |
waitForElement(using, value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElement(using, value, timeout, pollFreq, cb) -> cb(err, el) timeout and pollFreq are optional (default 1000ms/200ms) waitForElement(using, value, opts, cb) -> cb(err, el) opts with the following fields: timeout, pollFreq, asserter. asserter like: function(element , cb) -> cb(err, satisfied, el) |
extra |
waitForElements(using, value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElements(using, value, timeout, pollFreq, cb) -> cb(err, els) timeout and pollFreq are optional (default 1000ms/200ms) waitForElements(using, value, opts, cb) -> cb(err, els) opts with the following fields: timeout, pollFreq, asserter. asserter like: function(element , cb) -> cb(err, satisfied, el) |
extra |
saveScreenshot(path, cb) -> cb(err, filePath) path maybe a full file path, a directory path (finishing with /), the screenshot name, or left blank (will create a file in the system temp dir). |
extra |
waitForElementByClassName(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByCssSelector(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementById(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByName(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByLinkText(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByPartialLinkText(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByTagName(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByXPath(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByCss(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByIosUIAutomation(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByIosClassChain(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByAndroidUIAutomator(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementByAccessibilityId(value, asserter, timeout, pollFreq, cb) -> cb(err, el) asserter, timeout, pollFreq are optional, opts may be passed instead, as in waitForElement. |
extra |
waitForElementsByClassName(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByCssSelector(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsById(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByName(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByLinkText(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByPartialLinkText(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByTagName(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByXPath(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByCss(value, asserter, timeout, pollFreq, cb) -> cb(err, els) waitForElementsByIosUIAutomation(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementsByIosClassChain(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementsByAndroidUIAutomator(value, asserter, timeout, pollFreq, cb) -> cb(err, el) waitForElementsByAccessibilityId(value, asserter, timeout, pollFreq, cb) -> cb(err, el) asserter, timeout, pollFreq are optional, opts may be passed instead, as in waitForElements. |
extra |
Retrieves the pageIndex element (added for Appium): getPageIndex(element, cb) -> cb(err, pageIndex) |
extra |
Uploads a local file using undocumented POST /session/:sessionId/file uploadFile(filepath, cb) -> cb(err, filepath) |
extra |
Waits for JavaScript condition to be true (async script polling within browser): waitForConditionInBrowser(conditionExpr, timeout, pollFreq, cb) -> cb(err, boolean) conditionExpr: condition expression, should return a boolean timeout and pollFreq are optional, default: 1000/100. return true if condition satisfied, error otherwise. |
extra |
sauceJobUpdate(jsonData, cb) -> cb(err) |
extra |
sauceJobStatus(hasPassed, cb) -> cb(err) |
extra |
sleep(ms, cb) -> cb(err) |
extra |
noop(cb) -> cb(err) |
extra |
Equivalent to the python sendKeys binding. Upload file if a local file is detected, otherwise behaves like type. element.sendKeys(keys, cb) -> cb(err) |
extra |
Equivalent to the python sendKeys binding, but replaces texts instead of keeping original. Upload file if a local file is detected, otherwise behaves like type. element.setText(keys, cb) -> cb(err) |
extra |
isVisible(cb) -> cb(err, boolean) |
extra |
element.sleep(ms, cb) -> cb(err) |
extra |
element.noop(cb) -> cb(err) |
asserter |
asserters.nonEmptyText |
asserter |
asserters.textInclude(content) -> Asserter |
asserter |
asserters.isVisible |
asserter |
asserters.isHidden |
asserter |
asserters.jsCondition(jsConditionExpr) -> Asserter jsConditionExpr: js script expression, should evaluate as boolean. |
wd |
wd.configureHttp(opts) opts example: {timeout:60000, retries: 3, 'retryDelay': 15, baseUrl='http://example.com/'} more info in README. |
wd |
wd.showHideDeprecation(boolean) |
wd |
wd.addAsyncMethod(name, func) |
wd |
wd.addElementAsyncMethod(name, func) |
wd |
wd.addPromiseMethod(name, func) |
wd |
wd.addElementPromiseMethod(name, func) |
wd |
wd.addPromiseChainMethod(name, func) |
wd |
wd.addElementPromiseChainMethod(name, func) |
wd |
wd.removeMethod(name, func) |
MISSING: POST /session/:sessionId/appium/device/is_locked |
isLocked(cb) -> cb(err) |
MISSING: GET /session/:sessionId/appium/settings |
settings(cb) -> cb(err, settingsObject) |
MISSING: POST /session/:sessionId/appium/settings |
updateSettings(settingsObject, cb) -> cb(err) |