Interface CDPSession

The CDPSession instances are used to talk raw Chrome Devtools Protocol:

  • protocol methods can be called with session.send method.
  • protocol events can be subscribed to with session.on method.

Useful links:

const client = await page.context().newCDPSession(page);
await client.send('Animation.enable');
client.on('Animation.animationCreated', () => console.log('Animation created!'));
const response = await client.send('Animation.getPlaybackRate');
console.log('playback rate is ' + response.playbackRate);
await client.send('Animation.setPlaybackRate', {
playbackRate: response.playbackRate / 2
});
interface CDPSession {
    addListener<T>(event, listener): this;
    addListener(event, listener): this;
    addListener(event, listener): this;
    detach(): Promise<void>;
    off<T>(event, listener): this;
    off(event, listener): this;
    off(event, listener): this;
    on<T>(event, listener): this;
    on(event, listener): this;
    on(event, listener): this;
    once<T>(event, listener): this;
    once(event, listener): this;
    once(event, listener): this;
    prependListener(event, listener): this;
    prependListener(event, listener): this;
    removeListener<T>(event, listener): this;
    removeListener(event, listener): this;
    removeListener(event, listener): this;
    send<T>(method, params?): Promise<CommandReturnValues[T]>;
}

Methods

  • Type Parameters

    • T extends symbol | (keyof Events)

    Parameters

    • event: T
    • listener: ((payload) => void)
        • (payload): void
        • Parameters

          • payload: T extends symbol
                ? any
                : Events[T extends keyof Events
                    ? T<T>
                    : never]

          Returns void

    Returns this

  • Emitted when the session is closed, either because the target was closed or session.detach() was called.

    Parameters

    • event: "close"
    • listener: ((cdpSession) => any)
        • (cdpSession): any
        • Parameters

          Returns any

    Returns this

  • Emitted for every CDP event received from the session. Allows subscribing to all CDP events at once without knowing their names ahead of time.

    Usage

    session.on('event', ({ name, params }) => {
    console.log(`CDP event: ${name}`, params);
    });

    Parameters

    • event: "event"
    • listener: ((data) => any)
        • (data): any
        • Parameters

          • data: {
                method: string;
                params?: Object;
            }
            • method: string

              CDP event name.

            • Optional params?: Object

              CDP event parameters.

          Returns any

    Returns this

  • Detaches the CDPSession from the target. Once detached, the CDPSession object won't emit any events and can't be used to send messages.

    Returns Promise<void>

  • Type Parameters

    • T extends symbol | (keyof Events)

    Parameters

    • event: T
    • listener: ((payload) => void)
        • (payload): void
        • Parameters

          • payload: T extends symbol
                ? any
                : Events[T extends keyof Events
                    ? T<T>
                    : never]

          Returns void

    Returns this

  • Removes an event listener added by on or addListener.

    Parameters

    • event: "close"
    • listener: ((cdpSession) => any)
        • (cdpSession): any
        • Parameters

          Returns any

    Returns this

  • Removes an event listener added by on or addListener.

    Parameters

    • event: "event"
    • listener: ((data) => any)
        • (data): any
        • Parameters

          • data: {
                method: string;
                params?: Object;
            }
            • method: string

              CDP event name.

            • Optional params?: Object

              CDP event parameters.

          Returns any

    Returns this

  • Type Parameters

    • T extends symbol | (keyof Events)

    Parameters

    • event: T
    • listener: ((payload) => void)
        • (payload): void
        • Parameters

          • payload: T extends symbol
                ? any
                : Events[T extends keyof Events
                    ? T<T>
                    : never]

          Returns void

    Returns this

  • Emitted when the session is closed, either because the target was closed or session.detach() was called.

    Parameters

    • event: "close"
    • listener: ((cdpSession) => any)
        • (cdpSession): any
        • Parameters

          Returns any

    Returns this

  • Emitted for every CDP event received from the session. Allows subscribing to all CDP events at once without knowing their names ahead of time.

    Usage

    session.on('event', ({ name, params }) => {
    console.log(`CDP event: ${name}`, params);
    });

    Parameters

    • event: "event"
    • listener: ((data) => any)
        • (data): any
        • Parameters

          • data: {
                method: string;
                params?: Object;
            }
            • method: string

              CDP event name.

            • Optional params?: Object

              CDP event parameters.

          Returns any

    Returns this

  • Type Parameters

    • T extends symbol | (keyof Events)

    Parameters

    • event: T
    • listener: ((payload) => void)
        • (payload): void
        • Parameters

          • payload: T extends symbol
                ? any
                : Events[T extends keyof Events
                    ? T<T>
                    : never]

          Returns void

    Returns this

  • Adds an event listener that will be automatically removed after it is triggered once. See addListener for more information about this event.

    Parameters

    • event: "close"
    • listener: ((cdpSession) => any)
        • (cdpSession): any
        • Parameters

          Returns any

    Returns this

  • Adds an event listener that will be automatically removed after it is triggered once. See addListener for more information about this event.

    Parameters

    • event: "event"
    • listener: ((data) => any)
        • (data): any
        • Parameters

          • data: {
                method: string;
                params?: Object;
            }
            • method: string

              CDP event name.

            • Optional params?: Object

              CDP event parameters.

          Returns any

    Returns this

  • Emitted when the session is closed, either because the target was closed or session.detach() was called.

    Parameters

    • event: "close"
    • listener: ((cdpSession) => any)
        • (cdpSession): any
        • Parameters

          Returns any

    Returns this

  • Emitted for every CDP event received from the session. Allows subscribing to all CDP events at once without knowing their names ahead of time.

    Usage

    session.on('event', ({ name, params }) => {
    console.log(`CDP event: ${name}`, params);
    });

    Parameters

    • event: "event"
    • listener: ((data) => any)
        • (data): any
        • Parameters

          • data: {
                method: string;
                params?: Object;
            }
            • method: string

              CDP event name.

            • Optional params?: Object

              CDP event parameters.

          Returns any

    Returns this

  • Type Parameters

    • T extends symbol | (keyof Events)

    Parameters

    • event: T
    • listener: ((payload) => void)
        • (payload): void
        • Parameters

          • payload: T extends symbol
                ? any
                : Events[T extends keyof Events
                    ? T<T>
                    : never]

          Returns void

    Returns this

  • Removes an event listener added by on or addListener.

    Parameters

    • event: "close"
    • listener: ((cdpSession) => any)
        • (cdpSession): any
        • Parameters

          Returns any

    Returns this

  • Removes an event listener added by on or addListener.

    Parameters

    • event: "event"
    • listener: ((data) => any)
        • (data): any
        • Parameters

          • data: {
                method: string;
                params?: Object;
            }
            • method: string

              CDP event name.

            • Optional params?: Object

              CDP event parameters.

          Returns any

    Returns this

  • Type Parameters

    • T extends keyof CommandParameters

    Parameters

    • method: T

      Protocol method name.

    • Optional params: CommandParameters[T]

      Optional method parameters.

    Returns Promise<CommandReturnValues[T]>