Skip to content

XCUITest driver has partial support of the BiDi Protocol since version 7.26.0. Only events and commands mentioned below are supported. All other entities described in the spec throw not implemented errors.

Supported Events

log.entryAdded

This event is emitted if the driver retrieves a new entry for any of the below log types. Logs collection might be disabled by the appium:skipLogCapture capability.

crashlog

Events are emitted for both emulator and real devices. The latter only works if py-ios-device is installed on the server host. Each event contains a particular device crash report entry. Events are always emitted with the NATIVE_APP context.

syslog

Events are emitted for both emulator and real devices. Each event contains a single device system log line. Events are always emitted with the NATIVE_APP context.

safariConsole

Events are emitted for both emulator and real devices. Each event contains a single Safari console log line. Events are always emitted with the appropriate web context name from which they were generated. Events are only emitted if the appium:showSafariConsoleLog capability value is provided.

safariNetwork

Events are emitted for both emulator and real devices. Each event contains a single Safari network log line. Events are always emitted with the appropriate web context name from which they were generated. Events are only emitted if the appium:showSafariNetworkLog capability value is provided.

performance

Events are emitted for both emulator and real devices. Each event contains a single Safari performance log line. Events are always emitted with the appropriate web context name from which they were generated. Events are only emitted if the appium:enablePerformanceLogging capability value is provided.

server

Events are emitted for both emulator and real devices. Each event contains a single Appium server log line. Events are always emitted with the NATIVE_APP context. Events are only emitted if the get_server_logs server security feature is enabled.

appium:xcuitest.contextUpdate

This event is emitted upon the context change, either explicit or implicit. The event is always emitted upon new session initialization. See the GitHub feature ticket for more details.

CDDL

appium:xcuitest.contextUpdated = {
  method: "appium:xcuitest.contextUpdated",
  params: {
    name: text,
    type: "NATIVE" / "WEB",
  },
}

The event contains the following params:

name

Contains the actual name of the new context, for example NATIVE_APP.

type

Either NATIVE or WEB depending on which context is currently active in the driver session.