@applitools/driver
Version:
Applitools universal framework wrapper
120 lines (119 loc) • 4.83 kB
TypeScript
/// <reference types="node" />
import type { Size, Region } from '@applitools/utils';
import type { DriverInfo, Capabilities, UserAgent, Environment, Viewport, Features, ScreenOrientation, Cookie } from './types';
import { type Selector } from './selector';
import { type SpecType, type SpecDriver, type WaitOptions } from './spec-driver';
import { type Element } from './element';
import { type Logger } from '@applitools/logger';
import { Context, type ContextReference } from './context';
import { HelperIOS } from './helper-ios';
import { HelperAndroid } from './helper-android';
import { inspect } from 'util';
type DriverState<T extends SpecType> = {
nmlElement?: Element<T> | null;
};
type DriverOptions<T extends SpecType> = {
spec: SpecDriver<T>;
driver: T['driver'];
logger?: Logger;
customConfig?: {
useCeilForViewportSize?: boolean;
};
};
export declare class Driver<T extends SpecType> {
private _target;
private _mainContext;
private _currentContext;
private _driverInfo?;
private _environment?;
private _viewport?;
private _features?;
private _helper?;
private _state;
private _customConfig;
private _logger;
protected readonly _spec: SpecDriver<T>;
protected readonly _original: this;
constructor(options: DriverOptions<T>);
[inspect.custom](): {
driverInfo: DriverInfo | undefined;
environment: Environment | undefined;
viewport: Viewport | undefined;
helper: HelperAndroid<T> | HelperIOS<T> | null | undefined;
state: DriverState<T>;
customConfig: {
useCeilForViewportSize?: boolean | undefined;
};
features: Features | undefined;
};
get logger(): Logger;
get target(): T['driver'];
get guid(): string;
get currentContext(): Context<T>;
get mainContext(): Context<T>;
updateLogger(logger: Logger): void;
updateCurrentContext(context: Context<T>): void;
reloadPage(): Promise<this>;
refresh({ reset, name }?: {
reset?: boolean;
name?: string;
}): Promise<this>;
getDriverInfo({ force }?: {
force?: boolean;
}): Promise<DriverInfo>;
getCapabilities({ force }?: {
force?: boolean;
}): Promise<Capabilities | null>;
getUserAgent({ force }?: {
force?: boolean;
}): Promise<UserAgent | undefined>;
getUserAgentLegacy({ force }?: {
force?: boolean;
}): Promise<string | undefined>;
getEnvironment(): Promise<Environment>;
getViewport({ keepNavigationBar }?: {
keepNavigationBar?: boolean;
}): Promise<Viewport>;
getFeatures(): Promise<Features>;
getSessionId(): Promise<string | null>;
getDriverUrl(): Promise<string | null>;
getHelper(): Promise<HelperAndroid<T> | HelperIOS<T> | null>;
extractBrokerUrl(): Promise<string | null>;
getSessionMetadata(): Promise<any | undefined>;
getWorlds(): Promise<string[] | null>;
getCurrentWorld(): Promise<string | null>;
switchWorld(name?: string): Promise<void>;
switchTo(context: Context<T>): Promise<Context<T>>;
switchToMainContext(): Promise<Context<T>>;
switchToParentContext(elevation?: number): Promise<Context<T>>;
switchToChildContext(...references: ContextReference<T>[]): Promise<Context<T>>;
normalizeRegion(region: Region): Promise<Region>;
getRegionInViewport(context: Context<T>, region: Region): Promise<Region>;
takeScreenshot(): Promise<Uint8Array>;
getViewportSize(): Promise<Size>;
setViewportSize(size: Size): Promise<void>;
getDisplaySize(): Promise<Size | undefined>;
getOrientation(): Promise<ScreenOrientation | undefined>;
setOrientation(orientation: 'portrait' | 'landscape'): Promise<void>;
getCookies(): Promise<Cookie[]>;
getTitle(): Promise<string>;
getUrl(): Promise<string>;
element(selector: Selector<T>): Promise<Element<T> | null>;
elements(selector: Selector<T>): Promise<Element<T>[]>;
waitFor(selector: Selector<T>, options?: WaitOptions): Promise<Element<T> | null>;
execute(script: ((arg: any) => any) | string, arg?: any): Promise<any>;
executeUserFunction<T>(func: SpecType['userFunction'] | (() => T)): Promise<any>;
visit(url: string): Promise<void>;
}
export declare function isDriverInstance<T extends SpecType>(driver: any): driver is Driver<T>;
export declare function isDriver<T extends SpecType>(driver: any, spec?: SpecDriver<T>): driver is Driver<T> | T['driver'] | T['secondary']['driver'];
export declare function makeDriver<T extends SpecType>(options: {
driver: Driver<T> | T['driver'] | T['secondary']['driver'];
spec?: SpecDriver<T>;
customConfig?: {
useCeilForViewportSize?: boolean;
};
reset?: boolean;
logger?: Logger;
}): Promise<Driver<T>>;
export {};