selenium-webdriver
Version:
The official WebDriver JavaScript bindings from the Selenium project
120 lines (119 loc) • 4.32 kB
TypeScript
import type { BrowserUserContext } from './browser.js';
import type { BrowsingContextBrowsingContext } from './browsing_context.js';
import type { EmptyParams, EmptyResult, Extensible } from './common.js';
export type SessionCommand = SessionEnd | SessionNew | SessionStatus | SessionSubscribe | SessionUnsubscribe;
export type SessionResult = SessionEndResult | SessionNewResult | SessionStatusResult | SessionSubscribeResult | SessionUnsubscribeResult;
export interface SessionCapabilitiesRequest {
alwaysMatch?: SessionCapabilityRequest;
firstMatch?: SessionCapabilityRequest[];
}
export type SessionCapabilityRequest = Extensible & {
acceptInsecureCerts?: boolean;
browserName?: string;
browserVersion?: string;
platformName?: string;
proxy?: SessionProxyConfiguration;
unhandledPromptBehavior?: SessionUserPromptHandler;
};
export type SessionProxyConfiguration = SessionAutodetectProxyConfiguration | SessionDirectProxyConfiguration | SessionManualProxyConfiguration | SessionPacProxyConfiguration | SessionSystemProxyConfiguration;
export type SessionAutodetectProxyConfiguration = Extensible & {
proxyType: "autodetect";
};
export type SessionDirectProxyConfiguration = Extensible & {
proxyType: "direct";
};
export type SessionManualProxyConfiguration = SessionSocksProxyConfiguration & Extensible & {
proxyType: "manual";
httpProxy?: string;
sslProxy?: string;
noProxy?: string[];
};
export interface SessionSocksProxyConfiguration {
socksProxy: string;
socksVersion: number;
}
export type SessionPacProxyConfiguration = Extensible & {
proxyType: "pac";
proxyAutoconfigUrl: string;
};
export type SessionSystemProxyConfiguration = Extensible & {
proxyType: "system";
};
export interface SessionUserPromptHandler {
alert?: SessionUserPromptHandlerType;
beforeUnload?: SessionUserPromptHandlerType;
confirm?: SessionUserPromptHandlerType;
default?: SessionUserPromptHandlerType;
file?: SessionUserPromptHandlerType;
prompt?: SessionUserPromptHandlerType;
}
export type SessionUserPromptHandlerType = "accept" | "dismiss" | "ignore";
export type SessionSubscription = string;
export interface SessionSubscribeParameters {
events: string[];
contexts?: BrowsingContextBrowsingContext[];
userContexts?: BrowserUserContext[];
}
export interface SessionUnsubscribeByIdRequest {
subscriptions: SessionSubscription[];
}
export interface SessionUnsubscribeByAttributesRequest {
events: string[];
}
export interface SessionStatus {
method: "session.status";
params: EmptyParams;
}
export interface SessionStatusResult {
ready: boolean;
message: string;
}
export interface SessionNew {
method: "session.new";
params: SessionNewParameters;
}
export interface SessionNewParameters {
capabilities: SessionCapabilitiesRequest;
}
export interface SessionNewResult {
sessionId: string;
capabilities: {
acceptInsecureCerts: boolean;
browserName: string;
browserVersion: string;
platformName: string;
setWindowRect: boolean;
userAgent: string;
proxy?: SessionProxyConfiguration;
unhandledPromptBehavior?: SessionUserPromptHandler;
webSocketUrl?: string;
};
}
export interface SessionEnd {
method: "session.end";
params: EmptyParams;
}
export type SessionEndResult = EmptyResult;
export interface SessionSubscribe {
method: "session.subscribe";
params: SessionSubscribeParameters;
}
export interface SessionSubscribeResult {
subscription: SessionSubscription;
}
export interface SessionUnsubscribe {
method: "session.unsubscribe";
params: SessionUnsubscribeParameters;
}
export type SessionUnsubscribeParameters = SessionUnsubscribeByAttributesRequest | SessionUnsubscribeByIdRequest;
export type SessionUnsubscribeResult = EmptyResult;
export declare class Session {
private readonly bidi;
private constructor();
static create(driver: unknown): Promise<Session>;
end(): Promise<void>;
new(params: SessionNewParameters): Promise<SessionNewResult>;
status(): Promise<SessionStatusResult>;
subscribe(params: SessionSubscribeParameters): Promise<SessionSubscribeResult>;
unsubscribe(params: SessionUnsubscribeParameters): Promise<void>;
}