Skip to content

Class: DriverCore<C>

@appium/base-driver.DriverCore

Implements

Type parameters

Name Type
C BaseDriverCapConstraints

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new DriverCore<C>(opts?, shouldValidateCaps?)

Type parameters

Name Type
C extends Readonly<Record<string, Constraint>> = typeof BASE_DESIRED_CAP_CONSTRAINTS

Parameters

Name Type Default value
opts DriverOpts<C> undefined
shouldValidateCaps? boolean true

Defined in

packages/base-driver/lib/basedriver/core.js:125

Properties

_eventHistory

_eventHistory: EventHistory

Defined in

packages/base-driver/lib/basedriver/core.js:87


_log

_log: AppiumLogger

Defined in

packages/base-driver/lib/basedriver/core.js:96


allowInsecure

allowInsecure: string[] = []

Defined in

packages/base-driver/lib/basedriver/core.js:65


basePath

basePath: string = DEFAULT_BASE_PATH

basePath is used for several purposes, for example in setting up proxying to other drivers, since we need to know what the base path of any incoming request might look like. We set it to the default initially but it is automatically updated during any actual program execution by the routeConfiguringFunction, which is necessarily run as the entrypoint for any Appium server

Defined in

packages/base-driver/lib/basedriver/core.js:60


commandsQueueGuard

Protected commandsQueueGuard: AsyncLock

Defined in

packages/base-driver/lib/basedriver/core.js:111


denyInsecure

denyInsecure: string[] = []

Defined in

packages/base-driver/lib/basedriver/core.js:68


eventEmitter

eventEmitter: EventEmitter

Defined in

packages/base-driver/lib/basedriver/core.js:91


helpers

helpers: DriverHelpers<any> = helpers

Defined in

packages/base-driver/lib/basedriver/core.js:50


implicitWaitMs

implicitWaitMs: number = 0

Defined in

packages/base-driver/lib/basedriver/core.js:72


initialOpts

initialOpts: ServerArgs

Defined in

packages/base-driver/lib/basedriver/core.js:48


locatorStrategies

locatorStrategies: string[] = []

Defined in

packages/base-driver/lib/basedriver/core.js:75


managedDrivers

managedDrivers: Driver<typeof BASE_DESIRED_CAP_CONSTRAINTS, StringRecord, any>[] = []

Defined in

packages/base-driver/lib/basedriver/core.js:81


newCommandTimeoutMs

newCommandTimeoutMs: number = NEW_COMMAND_TIMEOUT_MS

Defined in

packages/base-driver/lib/basedriver/core.js:70


noCommandTimer

noCommandTimer: null | Timeout = null

Defined in

packages/base-driver/lib/basedriver/core.js:84


opts

opts: DriverOpts<C>

Defined in

packages/base-driver/lib/basedriver/core.js:43


protocol

protocol: undefined | string

Defined in

packages/base-driver/lib/basedriver/core.js:254

packages/base-driver/lib/basedriver/core.js:258


relaxedSecurityEnabled

relaxedSecurityEnabled: boolean = false

Defined in

packages/base-driver/lib/basedriver/core.js:62


sessionId

sessionId: null | string = null

Defined in

packages/base-driver/lib/basedriver/core.js:38


settings

settings: DeviceSettings<any>

settings should be instantiated by drivers which extend BaseDriver, but we set it to an empty DeviceSettings instance here to make sure that the default settings are applied even if an extending driver doesn't utilize the settings functionality itself

Defined in

packages/base-driver/lib/basedriver/core.js:119


shouldValidateCaps

shouldValidateCaps: boolean

Defined in

packages/base-driver/lib/basedriver/core.js:106


shutdownUnexpectedly

Protected shutdownUnexpectedly: boolean = false

Defined in

packages/base-driver/lib/basedriver/core.js:101


webLocatorStrategies

webLocatorStrategies: string[] = []

Defined in

packages/base-driver/lib/basedriver/core.js:78


baseVersion

Static baseVersion: any = BASEDRIVER_VER

Make the basedriver version available so for any driver which inherits from this package, we know which version of basedriver it inherited from

Defined in

packages/base-driver/lib/basedriver/core.js:30


executeMethodMap

Static executeMethodMap: Readonly<Record<string, Readonly<ExecuteMethodDef<DriverCore<typeof BASE_DESIRED_CAP_CONSTRAINTS>>>>> = {}

Defined in

packages/base-driver/lib/basedriver/core.js:33

Accessors

driverData

get driverData(): Record<string, unknown>

This property is used by AppiumDriver to store the data of the specific driver sessions. This data can be later used to adjust properties for driver instances running in parallel. Override it in inherited driver classes if necessary.

Returns

Record<string, unknown>

Driver properties mapping

Defined in

packages/base-driver/lib/basedriver/core.js:169


eventHistory

get eventHistory(): EventHistory

Returns

EventHistory

Defined in

packages/base-driver/lib/basedriver/core.js:192


isCommandsQueueEnabled

get isCommandsQueueEnabled(): boolean

This property controls the way the executeCommand method handles new driver commands received from the client. Override it for inherited classes only in special cases.

Returns

boolean

If the returned value is true (default) then all the commands received by the particular driver instance are going to be put into the queue, so each following command will not be executed until the previous command execution is completed. False value disables that queue, so each driver command is executed independently and does not wait for anything.

Defined in

packages/base-driver/lib/basedriver/core.js:184


log

get log(): AppiumLogger

Returns

AppiumLogger

Defined in

packages/base-driver/lib/basedriver/core.js:144

Methods

addManagedDriver

addManagedDriver(driver): void

Parameters

Name Type
driver Driver<typeof BASE_DESIRED_CAP_CONSTRAINTS, StringRecord, any>

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:402


assertFeatureEnabled

assertFeatureEnabled(name): void

Assert that a given feature is enabled and throw a helpful error if it's not

Parameters

Name Type Description
name string name of feature/command

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:306


canProxy

canProxy(sessionId?): boolean

Parameters

Name Type
sessionId? string

Returns

boolean

Defined in

packages/base-driver/lib/basedriver/core.js:361


clearNewCommandTimeout

clearNewCommandTimeout(): Promise<void>

Returns

Promise<void>

Defined in

packages/base-driver/lib/basedriver/core.js:410


driverForSession

driverForSession(sessionId): null | Core<C>

method required by MJSONWP in order to determine if the command should be proxied directly to the driver

Parameters

Name Type
sessionId string

Returns

null | Core<C>

Defined in

packages/base-driver/lib/basedriver/core.js:241


ensureFeatureEnabled

ensureFeatureEnabled(name): void

Assert that a given feature is enabled and throw a helpful error if it's not

Deprecated

Parameters

Name Type Description
name string name of feature/command

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:296


getManagedDrivers

getManagedDrivers(): Driver<typeof BASE_DESIRED_CAP_CONSTRAINTS, StringRecord, any>[]

Returns

Driver<typeof BASE_DESIRED_CAP_CONSTRAINTS, StringRecord, any>[]

Defined in

packages/base-driver/lib/basedriver/core.js:406


getProxyAvoidList

getProxyAvoidList(sessionId): RouteMatcher[]

Parameters

Name Type
sessionId string

Returns

RouteMatcher[]

Defined in

packages/base-driver/lib/basedriver/core.js:352


getStatus

getStatus(): Promise<{}>

Returns

Promise<{}>

Defined in

packages/base-driver/lib/basedriver/core.js:220


isFeatureEnabled

isFeatureEnabled(name): boolean

Check whether a given feature is enabled via its name

Parameters

Name Type Description
name string name of feature/command

Returns

boolean

Defined in

packages/base-driver/lib/basedriver/core.js:268


isMjsonwpProtocol

isMjsonwpProtocol(): boolean

Returns

boolean

Defined in

packages/base-driver/lib/basedriver/core.js:245


isW3CProtocol

isW3CProtocol(): boolean

Returns

boolean

Defined in

packages/base-driver/lib/basedriver/core.js:249


logEvent

logEvent(eventName): void

API method for driver developers to log timings for important events

Parameters

Name Type
eventName string

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:200


onUnexpectedShutdown

onUnexpectedShutdown(handler): void

Set a callback handler if needed to execute a custom piece of code when the driver is shut down unexpectedly. Multiple calls to this method will cause the handler to be executed mutiple times

Parameters

Name Type Description
handler (...args: any[]) => void The code to be executed on unexpected shutdown. The function may accept one argument, which is the actual error instance, which caused the driver to shut down.

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:157


proxyActive

proxyActive(sessionId?): boolean

Parameters

Name Type
sessionId? string

Returns

boolean

Defined in

packages/base-driver/lib/basedriver/core.js:343


proxyRouteIsAvoided

proxyRouteIsAvoided(sessionId, method, url, body?): boolean

Whether a given command route (expressed as method and url) should not be proxied according to this driver

Parameters

Name Type Description
sessionId string the current sessionId (in case the driver runs multiple session ids and requires it). This is not used in this method but should be made available to overridden methods.
method HTTPMethod HTTP method of the route
url string url of the route
body? any webdriver request body

Returns

boolean

  • whether the route should be avoided

Defined in

packages/base-driver/lib/basedriver/core.js:378


sessionExists

sessionExists(sessionId?): boolean

method required by MJSONWP in order to determine whether it should respond with an invalid session response

Parameters

Name Type
sessionId? string

Returns

boolean

Defined in

packages/base-driver/lib/basedriver/core.js:230


setProtocolMJSONWP

setProtocolMJSONWP(): void

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:253


setProtocolW3C

setProtocolW3C(): void

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:257


validateLocatorStrategy

validateLocatorStrategy(strategy, webContext?): void

Parameters

Name Type Default value
strategy string undefined
webContext? boolean false

Returns

void

Defined in

packages/base-driver/lib/basedriver/core.js:323