From 1f83e28d46631aeea679b2ba6a68eab28d2e742d Mon Sep 17 00:00:00 2001 From: Alexander Abashkin Date: Mon, 13 Mar 2017 20:26:38 +0300 Subject: [PATCH] Updated WebdriverIO API (#14945) --- webdriverio/index.d.ts | 1815 ++++++++++++++++++++++-------- webdriverio/webdriverio-tests.ts | 11 +- 2 files changed, 1323 insertions(+), 503 deletions(-) diff --git a/webdriverio/index.d.ts b/webdriverio/index.d.ts index dff87053d7..f091159263 100644 --- a/webdriverio/index.d.ts +++ b/webdriverio/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for webdriverio 4.5.0 +// Type definitions for webdriverio 4.6 // Project: http://www.webdriver.io/ // Definitions by: Nick Malaguti // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -7,238 +7,776 @@ /// declare namespace WebdriverIO { + export type Method = 'POST' | 'GET' | 'DELETE'; + + export interface RawResult { + sessionId: string; + value: T; + state: 'failure' | 'success'; + selector?: string; + message?: string; + hCode?: number; + class?: string; + error?: string; + } + + export type ElementId = string; + + export interface Element { + ELEMENT: ElementId; + } + + export interface CssProperty { + property: string; + value: string; + parsed: ParsedCssProperty; + } + + export interface ParsedCssProperty { + type: string; + string: string; + quote: string; + unit: string; + value: string | number | string[] | number[]; + } + + export interface Size { + width: number; + height: number; + } + + export interface Position { + x: number; + y: number; + } + + export interface DOMRect { + width: number; + height: number; + x: number; + y: number; + } + + export enum ApplicationCacheStatus { + UNCACHED = 0, + IDLE = 1, + CHECKING = 2, + DOWNLOADING = 3, + UPDATE_READY = 4, + OBSOLETE = 5 + } + + export enum Button { + left = 0, + middle = 1, + right = 2 + } + + export interface Status { + build?: { + version: string; + revision?: string; + time?: string; + }; + + os?: { + name: string; + arch?: string; + version?: string; + }; + + java?: { + version?: string; + }; + } + + export interface StorageItem { + key: string; + value: any; + } + + export interface StorageItems { + [key: string]: any; + } + + export interface GeoLocation { + latitude: number; + longitude: number; + altitude: number; + } + + export interface CommandHistoryEntry { + command: string; + args: any[]; + } + + export type Axis = 'x' | 'y'; + + export type Timeouts = 'script' | 'pageLoad' | 'implicit'; + + export type PageLoadingStrategy = 'none' | 'eager' | 'normal'; + + export type LocatorStrategy = 'css selector' + | 'link text' + | 'partial link text' + | 'tag name' + | 'xpath'; + + export interface LogEntry { + timestamp: number; + level: string; + message: string; + } + + export type LoggingPreferenceType = + 'OFF' | 'SEVERE' | 'WARNING' | + 'INFO' | 'CONFIG' | 'FINE' | + 'FINER' | 'FINEST' | 'ALL'; + + export interface LoggingPreferences { + browser?: LoggingPreferenceType; + driver?: LoggingPreferenceType; + server?: LoggingPreferenceType; + client?: LoggingPreferenceType; + } + + interface ProxyObject { + proxyType?: 'pac' | 'noproxy' | 'autodetect' | 'system' | 'manual'; + proxyAutoconfigUrl?: string; + ftpProxy?: string; + ftpProxyPort?: number; + httpProxy?: string; + httpProxyPort?: number; + sslProxy?: string; + sslProxyPort?: number; + socksProxy?: string; + socksProxyPort?: number; + socksVersion?: string; + socksUsername?: string; + socksPassword?: string; + } + + export interface Session { + id: string; + capabilities: DesiredCapabilities; + } + + export interface Capabilities { + browserName: string; + acceptInsecureCerts?: boolean; + browserVersion?: string; + platformName?: string; + pageLoadStrategy?: PageLoadingStrategy; + proxy?: ProxyObject; + setWindowRect?: boolean; + timeouts?: Timeouts; + unhandledPromptBehavior?: string; + } + + export interface DesiredCapabilities extends Capabilities { + // Read-only capabilities + cssSelectorsEnabled?: boolean; + handlesAlerts?: boolean; + version?: string; + platform?: string; + + // Read-write capabilities + javascriptEnabled?: boolean; + databaseEnabled?: boolean; + locationContextEnabled?: boolean; + applicationCacheEnabled?: boolean; + browserConnectionEnabled?: boolean; + webStorageEnabled?: boolean; + acceptSslCerts?: boolean; + rotatable?: boolean; + nativeEvents?: boolean; + unexpectedAlertBehaviour?: string; + elementScrollBehavior?: number; + + // Grid-specific + seleniumProtocol?: string; + maxInstances?: number; + environment?: string; + + // Selenium RC (1.0) only + commandLineFlags?: string; + executablePath?: string; + timeoutInSeconds?: number; + onlyProxySeleniumTraffic?: boolean; + avoidProxy?: boolean; + proxyEverything?: boolean; + proxyRequired?: boolean; + browserSideLog?: boolean; + optionsSet?: boolean; + singleWindow?: boolean; + dontInjectRegex?: RegExp; + userJSInjection?: boolean; + userExtensions?: string; + + // RemoteWebDriver specific + 'webdriver.remote.sessionid'?: string; + 'webdriver.remote.quietExceptions'?: boolean; + + // Selenese-Backed-WebDriver specific + 'selenium.server.url'?: string; + + loggingPrefs?: { + browser?: LoggingPreferences; + driver?: LoggingPreferences; + server?: LoggingPreferences; + client?: LoggingPreferences; + }; + + // Firefox + firefox_binary?: string; + firefoxProfileTemplate?: string; + captureNetworkTraffic?: boolean; + addCustomRequestHeaders?: boolean; + trustAllSSLCertificates?: boolean; + changeMaxConnections?: boolean; + profile?: string; + pageLoadingStrategy?: string; + + // IE specific + 'ie.forceCreateProcessApi'?: boolean; + 'ie.browserCommandLineSwitches'?: string; + 'ie.usePerProcessProxy'?: boolean; + 'ie.ensureCleanSession'?: boolean; + 'ie.setProxyByServer'?: boolean; + ignoreProtectedModeSettings?: boolean; + ignoreZoomSetting?: boolean; + initialBrowserUrl?: string; + enablePersistentHover?: boolean; + enableElementCacheCleanup?: boolean; + requireWindowFocus?: boolean; + browserAttachTimeout?: number; + logFile?: string; + logLevel?: string; + host?: string; + extractPath?: string; + silent?: string; + killProcessesByName?: boolean; + + // Safari specific + 'safari.options'?: { + [name: string]: any; + }; + + cleanSession?: boolean; + + // Chrome specific + chromeOptions?: { + args?: string[]; + binary?: string; + extensions?: string[]; + + localState?: { + [name: string]: any; + }; + + detach?: boolean; + debuggerAddress?: string; + excludeSwitches?: string[]; + minidumpPath?: string; + + mobileEmulation?: { + [name: string]: any; + }; + + perfLoggingPrefs?: { + [name: string]: any; + }; + + windowTypes?: string[]; + }; + + perfLoggingPrefs?: { + enableNetwork?: boolean; + enablePage?: boolean; + enableTimeline?: boolean; + tracingCategories?: boolean; + bufferUsageReportingInterval?: boolean; + }; + + // RC + honorSystemProxy?: boolean; + ensureCleanSession?: boolean; + } + + export interface Cookie extends RawResult { + name: string; + value: string; + path?: string; + httpOnly?: boolean; + expiry?: number; + secure: boolean; + } + + export interface Suite { + file: string; + parent: string; + pending: boolean; + title: string; + type: string; + } + + export interface Test extends Suite { + currentTest: string; + passed: boolean; + duration: any; + } + + export interface Hooks { + onError(error: Error): Promise & undefined; + + onPrepare( + config: Options, + capabilities: DesiredCapabilities + ): Promise & undefined; + + onComplete(exitCode: number): Promise & undefined; + + before( + capabilities: DesiredCapabilities, + specs: string[] + ): Promise & undefined; + + beforeCommand( + commandName: string, + args: any[] + ): Promise & undefined; + + beforeFeature(feature: string): Promise & undefined; + beforeHook(): Promise & undefined; + beforeScenario(scenario: string): Promise & undefined; + + beforeSession( + config: Options, + capabilities: DesiredCapabilities, + specs: string[] + ): Promise & undefined; + + beforeStep(step: string): Promise & undefined; + beforeSuite(suite: Suite): Promise & undefined; + beforeTest(test: Test): Promise & undefined; + afterHook(): Promise & undefined; + + after( + result: number, + capabilities: DesiredCapabilities, + specs: string[] + ): Promise & undefined; + + afterCommand( + commandName: string, + args: any[], + result: any, + error?: Error + ): Promise & undefined; + + afterScenario(scenario: any): Promise & undefined; + + afterSession( + config: Options, + capabilities: DesiredCapabilities, + specs: string[] + ): Promise & undefined; + + afterStep(stepResult: any): Promise & undefined; + afterSuite(suite: Suite): Promise & undefined; + afterTest(test: Test): Promise & undefined; + afterFeature(feature: string): Promise & undefined; + } + + export interface Options { + baseUrl?: string; + bail?: number; + coloredLogs?: boolean; + capabilities?: DesiredCapabilities[]; + connectionRetryTimeout?: number; + connectionRetryCount?: number; + debug?: number; + execArgv?: string[] | null; + desiredCapabilities?: DesiredCapabilities; + exclude?: string[]; + framework?: string; + hostname?: string; + isWDIO?: boolean; + protocol?: string; + port?: number; + path?: string; + plugins?: { [name: string]: any; }; + reporters?: string | ((...args: any[]) => void); + reporterOptions?: { outputDir?: string; }; + logLevel?: string; + maxInstances?: number; + maxInstancesPerCapability?: number; + maxSession?: number; + mochaOpts?: { [name: string]: any; }; + jasmineNodeOpts?: { [name: string]: any; }; + cucumberOpts?: { [name: string]: any; }; + services?: string | ((...args: any[]) => void); + screenshotPath?: string; + specs?: string[]; + seleniumLogs?: string; + suites?: { [name: string]: string[]; }; + sync?: boolean; + waitforTimeout?: number; + waitforInterval?: number; + user?: string; + key?: string; + } + + export interface UnknownOptions { + [name: string]: any; + } + + export interface MultiRemoteOptions { + [name: string]: Options; + } + + export interface Config extends Options, Hooks {} + + export interface Client { + desiredCapabilities: DesiredCapabilities; + } + + export interface Client { + sessionId: string; + } + + // Options + export interface Client { + options: Options; + } + + export class Launcher { + constructor(file: string, data: Options); + run(): Promise; + } + + export class ErrorHandler { + constructor(type: string, msg: string | number); + } + + export function multiremote(options: MultiRemoteOptions): Client; + export function remote(options?: Options, modifier?: (...args: any[]) => any): Client; + // EventEmitter export interface Client { - addListener(event: string, listener: Function): Client; - on(event: string, listener: Function): Client; - once(event: string, listener: Function): Client; - removeListener(event: string, listener: Function): Client; + addListener( + event: string, + listener: (...args: any[]) => void + ): Client; + + on( + event: string, + listener: (...args: any[]) => void + ): Client; + + once( + event: string, + listener: (...args: any[]) => void + ): Client; + + removeListener( + event: string, + listener: (...args: any[]) => void + ): Client; + removeAllListeners(event?: string): Client; setMaxListeners(n: number): Client; listeners(event: string): Client; - emit(event: string, ...args: any[]): Client; + emit( + event: string, + ...args: any[] + ): Client; } // Promise export interface Client { - call(callback: () => any): Client; - finally(callback: () => any): Client; - then

(onFulfilled?: (value: T) => P | Client

, onRejected?: (err: any) => P | Client

): Client

; - catch

(onRejected?: (err: any) => P | Client

): Client

; + finally(callback: (...args: any[]) => void): Client; + + then

( + onFulfilled?: (value: T) => P | Client

, + onRejected?: (error: any) => P | Client

+ ): Client

; + + catch

( + onRejected?: (error: any) => P | Client

+ ): Client

; + inspect(): Q.PromiseState; } - // Action export interface Client { addValue( selector: string, value: string | number - ): Client; - addValue(value: string | number): Client; + ): Client> & RawResult; + + addValue(value: string | number): Client> & RawResult; + addValue

( selector: string, value: string | number, ): Client

; + addValue

(value: string | number): Client

; - clearElement(selector?: string): Client; + clearElement(selector?: string): Client> & RawResult; clearElement

(selector?: string): Client

; - click(selector?: string): Client; + click(selector?: string): Client> & RawResult; click

(selector?: string): Client

; - doubleClick(selector?: string): Client; + doubleClick(selector?: string): Client> & RawResult; doubleClick

(selector?: string): Client

; dragAndDrop( sourceElem: string, destinationElem: string - ): Client; - dragAndDrop(destinationElem: string): Client; + ): Client> & RawResult; + dragAndDrop

( sourceElem: string, destinationElem: string ): Client

; + + dragAndDrop(destinationElem: string): Client> & RawResult; dragAndDrop

(destinationElem: string): Client

; - leftClick(selector?: string): Client; + leftClick(selector?: string): Client> & RawResult; + + leftClick( + selector: string, + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + + leftClick( + xoffset?: number, + yoffset?: number + ): Client & undefined; + leftClick

(selector?: string): Client

; - middleClick(selector?: string): Client; + leftClick

( + selector: string, + xoffset?: number, + yoffset?: number + ): Client

; + + leftClick

( + xoffset?: number, + yoffset?: number + ): Client

; + + middleClick(selector?: string): Client> & RawResult; + + middleClick( + selector: string, + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + + middleClick( + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + middleClick

(selector?: string): Client

; - moveToObject(selector?: string): Client; - moveToObject( + middleClick

( selector: string, - xoffset: number, - yoffset: number - ): Client; - moveToObject( - xoffset: number, - yoffset: number - ): Client; - moveToObject

(selector?: string): Client

; - moveToObject

( - selector: string, - xoffset: number, - yoffset: number - ): Client

; - moveToObject

( - xoffset: number, - yoffset: number + xoffset?: number, + yoffset?: number ): Client

; - rightClick(selector?: string): Client; + middleClick

( + xoffset?: number, + yoffset?: number + ): Client

; + + moveToObject(selector?: string): Client> & RawResult; + + moveToObject( + selector: string, + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + + moveToObject( + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + + moveToObject

(selector?: string): Client

; + + moveToObject

( + selector: string, + xoffset?: number, + yoffset?: number + ): Client

; + + moveToObject

( + xoffset?: number, + yoffset?: number + ): Client

; + + rightClick(selector?: string): Client> & RawResult; + + rightClick( + selector: string, + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + + rightClick( + xoffset?: number, + yoffset?: number + ): Client> & RawResult; + rightClick

(selector?: string): Client

; - selectByAttribute( + rightClick

( selector: string, - attribute: string, - value: string - ): Client; - selectByAttribute( - attribute: string, - value: string - ): Client; - selectByAttribute

( - selector: string, - attribute: string, - value: string + xoffset?: number, + yoffset?: number ): Client

; + + rightClick

( + xoffset?: number, + yoffset?: number + ): Client

; + + selectByAttribute( + selector: string, + attribute: string, + value: string | number + ): Client> & RawResult; + + selectByAttribute( + attribute: string, + value: string | number + ): Client> & RawResult; + + selectByAttribute

( + selector: string, + attribute: string, + value: string | number + ): Client

; + selectByAttribute

( attribute: string, - value: string + value: string | number ): Client

; selectByIndex( selectElem: string, index: number - ): Client; - selectByIndex(index: number): Client; + ): Client> & RawResult; + + selectByIndex(index: number): Client> & RawResult; + selectByIndex

( selectElem: string, index: number ): Client

; + selectByIndex

(index: number): Client

; selectByValue( selectElem: string, value: string - ): Client; - selectByValue(value: string): Client; + ): Client> & RawResult; + + selectByValue(value: string): Client> & RawResult; + selectByValue

( selectElem: string, value: string ): Client

; + selectByValue

(value: string): Client

; selectByVisibleText( selectElem: string, text: string - ): Client; - selectByVisibleText(text: string): Client; + ): Client> & RawResult; + + selectByVisibleText(text: string): Client> & RawResult; + selectByVisibleText

( selectElem: string, text: string ): Client

; - selectByVisibleText

(text: string): Client

; + + selectByVisibleText

(text: string): Client> & RawResult; selectorExecute

( selectors: string | string[], script: (elements: HTMLElement | HTMLElement[], ...args: any[]) => P, ...args: any[] - ): Client

; + ): Client

& any; + + selectorExecute

( + selectors: string | string[], + script: (elements: HTMLElement | HTMLElement[], ...args: any[]) => P, + ...args: any[] + ): Client

& any; selectorExecuteAsync

( selectors: string | string[], script: (elements: HTMLElement | HTMLElement[], ...args: any[]) => P, ...args: any[] - ): Client

; + ): Client

& any; setValue( selector: string, - values: number | string | Array - ): Client; + values: number | string | string[] + ): Client> & RawResult; + setValue( - values: number | string | Array - ): Client; + values: number | string | string[] + ): Client> & RawResult; + setValue

( selector: string, - values: number | string | Array - ): Client; - setValue

( - values: number | string | Array - ): Client; + values: number | string | string[] + ): Client & undefined; - submitForm(selector?: string): Client; + setValue

( + values: number | string | string[] + ): Client & undefined; + + submitForm(selector?: string): Client> & RawResult; submitForm

(selector?: string): Client

; } - // Appium - export interface Client { - // backgroundApp - // closeApp - // context - // contexts - // deviceKeyEvent - // getAppStrings - // getCurrentDeviceActivity - // getNetworkConnection - // hideDeviceKeyboard - // installAppOnDevice - // isAppInstalledOnDevice - // launchApp - // lock - // openNotifications - // performMultiAction - // performTouchAction - // pullFileFromDevice - // pushFileToDevice - // removeAppFromDevice - // resetApp - // rotate - // setImmediateValueInApp - // setNetworkConnection - // shake - // toggleAirplaneModeOnDevice - // toggleDataOnDevice - // toggleLocationServicesOnDevice - // toggleWiFiOnDevice - } - - export interface Cookie { - name: string; - value: string; - } - // Cookie export interface Client { - deleteCookie(name?: string): Client; + deleteCookie(name?: string): Client> & RawResult; deleteCookie

(name?: string): Client

; - getCookie(): Client; - getCookie(name: string): Client; + getCookie(): Client & Cookie[]; + getCookie(name: string): Client & Cookie; getCookie

(name?: string): Client

; - setCookie(cookie: Cookie): Client; + setCookie(cookie: Cookie): Client> & RawResult; setCookie

(cookie: Cookie): Client

; } + // Grid export interface Client { - session( - action?: string, - sessionId?: string - ): Client>; - session

(): Client

; - - getGridNodeDetails(): Client; + getGridNodeDetails(): Client & UnknownOptions; getGridNodeDetails

(): Client

; - gridProxyDetails(): Client; - gridProxyDetails

(): Client

; + gridProxyDetails(): Client & UnknownOptions; + gridProxyDetails

(): Client

; - gridTestSession(): Client; - gridProxyDetails

(): Client

; + gridTestSession(): Client & UnknownOptions; + gridTestSession

(): Client

; } // Mobile @@ -274,16 +812,32 @@ declare namespace WebdriverIO { release(selector: string): Client; removeApp(bundleId: string): Client; reset(): Client; - rotate(x: number, y: number, duration?: number, radius?: number, rotation?: number, touchCount?: number): Client; - setGeoLocation(location: { latitude: number, longitude: number, altitude: number }): Client; - setImmediateValue(id: string, value: string | Array): Client; + + rotate( + x: number, + y: number, + duration?: number, + radius?: number, + rotation?: number, + touchCount?: number + ): Client; + + setGeoLocation(location: GeoLocation): Client; + setImmediateValue(id: string, value: string | string[]): Client; setNetworkConnection(flags: 0 | 1 | 2 | 4 | 6): Client; setOrientation(setTo: 'landscape' | 'portrait'): Client; settings(settings?: { [key: string]: string }): Client; shake(): Client; startActivity(appPackage: string, activity: string): Client; strings(language: string): Client; - swipe(selector?: string, xOffset?: number, yOffset?: number, speed?: number): Client; + + swipe( + selector?: string, + xOffset?: number, + yOffset?: number, + speed?: number + ): Client; + swipeDown(selector: string, speed?: number): Client; swipeLeft(selector: string, speed?: number): Client; swipeRight(selector: string, speed?: number): Client; @@ -300,304 +854,184 @@ declare namespace WebdriverIO { unlock(): Client; } - export interface CssProperty { - property: string; - value: string; - parsed: ParsedCssProperty; - } - - export interface ParsedCssProperty { - type: string; - string: string; - quote: string; - unit: string; - value: string | number | string[] | number[]; - } - - export interface Size { - width: number; - height: number; - } - - export interface Location { - x: number; - y: number; - } - // Property export interface Client { getAttribute( selector: string, attributeName: string - ): Client & string; + ): Client & Client & string & null; + getAttribute( selector: string, attributeName: string - ): Client & string[]; - getAttribute(attributeName: string): Client & string; - getAttribute(attributeName: string): Client & string[]; + ): Client & Client & string[] & null[]; + + getAttribute(attributeName: string): Client & Client & string & null; + getAttribute(attributeName: string): Client & Client & string[] & null[]; + getAttribute

( selector: string, attributeName: string ): Client

; + getAttribute

(attributeName: string): Client

; getCssProperty( selector: string, cssProperty: string - ): CssProperty; + ): Client & CssProperty; + getCssProperty( selector: string, cssProperty: string - ): CssProperty[]; - getCssProperty(cssProperty: string): CssProperty; - getCssProperty(cssProperty: string): CssProperty[]; + ): Client & CssProperty[]; + + getCssProperty(cssProperty: string): Client & CssProperty; + getCssProperty(cssProperty: string): Client & CssProperty[]; + getCssProperty

( selector: string, cssProperty: string ): Client

; + getCssProperty

(cssProperty: string): Client

; getElementSize(selector: string): Client & Size; + getElementSize(): Client & Size; + getElementSize(selector: string): Client & Size[]; - getElementSize(): Client & Size|Size[]; + getElementSize(): Client & Size[]; + getElementSize( selector: string, - dimension: string - ): number; + dimension?: string + ): Client & number; + getElementSize( selector: string, - dimension: string - ): number[]; - getElementSize(dimension: string): number ; - getElementSize(dimension: string): number[]; + dimension?: string + ): Client & number[]; + + getElementSize(dimension?: string): Client & number; + getElementSize(dimension?: string): Client & number[]; + getElementSize

(selector?: string): Client

; + getElementSize

(dimension?: string): Client

; + getElementSize

( selector: string, - dimension: string + dimension?: string ): Client

; - getElementSize

(dimension: string): Client

; getHTML( selector: string, includeSelectorTag?: boolean - ): string; + ): Client & string; + getHTML( selector: string, includeSelectorTag?: boolean - ): string[]; - getHTML(includeSelectorTag?: boolean): string; - getHTML(includeSelectorTag?: boolean): string[]; + ): Client & string[]; + + getHTML(includeSelectorTag?: boolean): Client & string; + getHTML(includeSelectorTag?: boolean): Client & string[]; getHTML

(selector?: string): Client

; + getHTML

( selector: string, - includeSelectorTag: boolean + includeSelectorTag?: boolean ): Client

; - getHTML

(includeSelectorTag: boolean): Client

; - getLocation(axis: Axis): number; - getLocation

(axis: Axis): Client

; - getLocation(selector?: string): Location; + getHTML

(includeSelectorTag?: boolean): Client

; + + getLocation(axis?: Axis): Client & number; + getLocation

(axis?: Axis): Client

; + getLocation(selector?: string): Client & Position; getLocation

(selector?: string): Client

; - getLocation(selector: string, axis: Axis): number; - getLocation

(selector: string, axis: Axis): Client

; + getLocation(selector: string, axis?: Axis): Client & number; + getLocation

(selector: string, axis?: Axis): Client

; - getLocationInView(axis: Axis): number; - getLocationInView(axis: Axis): number[]; - getLocationInView

(axis: Axis): Client

; - getLocationInView(selector?: string): Location; - getLocationInView(selector?: string): Location[]; + getLocationInView(axis?: Axis): Client & number; + getLocationInView(axis?: Axis): Client & number[]; + getLocationInView

(axis?: Axis): Client

; + getLocationInView(selector?: string): Client & Position; + getLocationInView(selector?: string): Client & Position[]; getLocationInView

(selector?: string): Client

; - getLocationInView(selector: string, axis: Axis): number; - getLocationInView(selector: string, axis: Axis): number[]; - getLocationInView

(selector: string, axis: Axis): Client

; + getLocationInView(selector: string, axis?: Axis): Client & number; + getLocationInView(selector: string, axis?: Axis): Client & number[]; + getLocationInView

(selector: string, axis?: Axis): Client

; - getSource(): Client; + getSource(): Client & string; getSource

(): Client

; - getTagName(selector?: string): string | string[]; + getTagName(selector?: string): Client & string; + getTagName(selector?: string): Client & string[]; getTagName

(selector?: string): Client

; - getText(selector?: string): string | string[]; + getText(selector?: string): Client & string; + getText(selector?: string): Client & string[]; getText

(selector?: string): Client

; - getTitle(): Client; + getTitle(): Client & string; getTitle

(): Client

; - getUrl(): Client; + getUrl(): Client & string; getUrl

(): Client

; - getValue(selector?: string): string | string[]; + getValue(selector?: string): Client & string; + getValue(selector?: string): Client & string[]; getValue

(selector?: string): Client

; } - export interface LogEntry { - timestamp: number; - level: string; - message: string; - } - - export enum ApplicationCacheStatus { - UNCACHED = 0, - IDLE = 1, - CHECKING = 2, - DOWNLOADING = 3, - UPDATE_READY = 4, - OBSOLETE = 5 - } - - export enum Button { - left = 0, - middle = 1, - right = 2 - } - - export interface StorageItem { - key: string; - value: any; - } - - export interface GeoLocation { - latitude: number; - longitude: number; - altitude: number; - } - - export interface Session { - id: string; - capabilities: any; - } - - export interface RawResult { - value: T; - error: string; - } - - // Navigation + // Protocol export interface Client { - back(): Client; - back

(): Client

; - - forward(): Client; - forward

(): Client

; - - refresh(): Client; - refresh

(): Client

; - - url(): Client> & RawResult; - url(url: string): Client; - url

(url?: string): Client

; - } - - // Advanced input - export interface Client { - // you probably want to use the click and drag and drop commands instead - buttonDown(button?: string | Button): Client; - buttonDown

(button?: string | Button): Client

; - - // you probably want to use the click and drag and drop commands instead - buttonPress(button?: string | Button): Client; - buttonPress

(button?: string | Button): Client

; - - // you probably want to use the click and drag and drop commands instead - buttonUp(button?: string | Button): Client; - buttonUp

(button?: string | Button): Client

; - - // you probably want to use the click and drag and drop commands instead - doDoubleClick(): Client; - doDoubleClick

(): Client

; - - // you probably want to use addValue and setValue instead - keys(value: string | string[]): Client; - keys

(value: string | string[]): Client

; - - // you probably want to use the moveToObject command instead - moveTo( - id: ElementId, - xoffset?: number, - yoffset?: number - ): Client; - moveTo( - xoffset?: number, - yoffset?: number - ): Client; - moveTo

(id: ElementId): Client

; - moveTo

( - id: ElementId, - xoffset: number, - yoffset?: number - ): Client

; - - // touchClick - // touchDoubleClick - // touchDown - // touchFlick - // touchLongClick - // touchMove - // touchScroll - // touchUp - } - - // Useful Protocol - export interface Client { - alertAccept(): Client; + alertAccept(): Client>; alertAccept

(): Client

; - alertDismiss(): Client; + alertDismiss(): Client>; alertDismiss

(): Client

; - alertText(text?: string): Client; - alertText

(): Client

; - alertText

(text: string): Client

; + alertText(): Client | string; + alertText(text: string): Client | null; + alertText

(text?: string): Client

; - frame(id: any): Client; - frame

(id: any): Client

; + /** @deprecated */ + applicationCacheStatus(): Client> & RawResult & never; - frameParent(): Client; - frameParent

(): Client

; + /** @deprecated */ + applicationCacheStatus

(): Client

; - init(capabilities?: DesiredCapabilities): Client; - init

(capabilities?: DesiredCapabilities): Client

; + back(): Client>; + back

(): Client

; - log(type: string): Client>; - log

(type: string): Client

; + /** @deprecated in favour of Actions.pointerDown */ + buttonDown(button?: string | Button): Client> & RawResult & never; - logTypes(): Client> & RawResult; - logTypes

(): Client

; + /** @deprecated in favour of Actions.pointerDown */ + buttonDown

(button?: string | Button): Client

; - session( - action?: string, - sessionId?: string - ): Client> & RawResult; - session

(action?: string): Client

; - session

( - action: string, - sessionId: string - ): Client

; + /** @deprecated in favour of Actions.pointerDown */ + buttonPress(button?: string | Button): Client> & RawResult & never; - sessions(): Client>; - sessions

(): Client

; + /** @deprecated in favour of Actions.pointerDown */ + buttonPress

(button?: string | Button): Client

; - timeouts

(type: string, ms: number): Client

; - timeoutsAsyncScript

(ms: number): Client

; - timeoutsImplicitWait

(ms: number): Client

; + buttonUp(button?: string | Button): Client> & RawResult; + buttonUp

(button?: string | Button): Client

; - // window - // windowHandle - // windowHandleMaximize - // windowHandlePosition - // windowHandleSize - // windowHandles - } + cookie(): Client> & RawResult; - export type ElementId = string; + cookie( + method: Method, + key?: Cookie | string + ): Client> & RawResult; - export interface Element { - ELEMENT: ElementId; - } + /** @deprecated in favour of Actions.pointerDown(0) + Actions.pointerMove */ + doDoubleClick(): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerDown(0) + Actions.pointerMove */ + doDoubleClick

(): Client

; - // Element - export interface Client { element(selector: string): Client> & RawResult; element

(selector: string): Client

; @@ -608,33 +1042,39 @@ declare namespace WebdriverIO { id: ElementId, attributeName: string ): Client> & RawResult; + elementIdAttribute

( id: ElementId, attributeName: string ): Client

; - elementIdClear(id: ElementId): Client; + elementIdClear(id: ElementId): Client> & RawResult; elementIdClear

(id: ElementId): Client

; - elementIdClick(id: ElementId): Client; + elementIdClick(id: ElementId): Client> & RawResult; elementIdClick

(id: ElementId): Client

; elementIdCssProperty( id: ElementId, propertyName: string ): Client> & RawResult; + elementIdCssProperty

( id: ElementId, propertyName: string ): Client

; - elementIdDisplayed(id: ElementId): Client> & RawResult; + /** @deprecated */ + elementIdDisplayed(id: ElementId): Client> & RawResult & never; + + /** @deprecated */ elementIdDisplayed

(id: ElementId): Client

; elementIdElement( id: ElementId, selector: string ): Client> & RawResult; + elementIdElement

( id: ElementId, selector: string @@ -644,6 +1084,7 @@ declare namespace WebdriverIO { id: ElementId, selector: string ): Client> & RawResult; + elementIdElements

( id: ElementId, selector: string @@ -652,19 +1093,31 @@ declare namespace WebdriverIO { elementIdEnabled(id: ElementId): Client> & RawResult; elementIdEnabled

(id: ElementId): Client

; - elementIdLocation(id: ElementId): Client> & RawResult; + /** @deprecated in favour of elementIdRect */ + elementIdLocation(id: ElementId): Client> & RawResult & never; + + /** @deprecated in favour of elementIdRect */ elementIdLocation

(id: ElementId): Client

; - elementIdLocationInView(id: ElementId): Client> & RawResult; - elementIdLocationInView

(id: ElementId): Client

; + /** @deprecated in favour of elementIdRect */ + elementIdLocationInView(id: ElementId): Client> & RawResult & never; - elementIdName(id: ElementId): RawResult; + /** @deprecated in favour of elementIdRect */ + elementIdLocationInView

(id: ElementId): Client

; + + elementIdName(id: ElementId): Client> & RawResult; elementIdName

(id: ElementId): Client

; + elementIdRect(id: ElementId): Client> & RawResult; + elementIdRect

(id: ElementId): Client

; + elementIdSelected(id: ElementId): Client> & RawResult; elementIdSelected

(id: ElementId): Client

; - elementIdSize(id: ElementId): Client> & RawResult; + /** @deprecated in favour of elementIdRect */ + elementIdSize(id: ElementId): Client> & RawResult & never; + + /** @deprecated in favour of elementIdRect */ elementIdSize

(id: ElementId): Client

; elementIdText(id: ElementId): Client> & RawResult; @@ -673,7 +1126,8 @@ declare namespace WebdriverIO { elementIdValue( id: ElementId, values: string | string[] - ): Client>; + ): Client> & RawResult; + elementIdValue

( id: ElementId, values: string | string[] @@ -681,87 +1135,447 @@ declare namespace WebdriverIO { elements(selector: string): Client> & RawResult; elements

(selector: string): Client

; - } - // Unuseful Protocol - export interface Client { - // applicationCacheStatus - // cookie + execute( + script: string | ((...args: any[]) => void), + ...args: any[] + ): Client> & RawResult; - // use selectorExecute instead - execute(script: string | Function, ...args: any[]): Client> & RawResult; + executeAsync( + script: string | ((...args: any[]) => void), + ...args: any[] + ): Client> & RawResult; - // use selectorExecuteAsync instead - executeAsync(script: string | Function, ...args: any[]): Client> & RawResult; + /** @deprecated */ + file(date: string): Client> & never; - // file - // imeActivate - // imeActivated - // imeActiveEngine - // imeAvailableEngines - // imeDeactivated - // localStorage - // localStorageSize - // location - // orientation - // screenshot - // sessionStorage - // sessionStorageSize - // source - // status + /** @deprecated */ + file

(date: string): Client

& never; - // use submitForm instead - submit(id: ElementId): Client; + forward(): Client> & RawResult; + forward

(): Client

; + + frame(id: any): Client> & RawResult; + frame

(id: any): Client

; + + frameParent(): Client> & RawResult; + frameParent

(): Client

; + + /** @deprecated */ + imeActivate(engine: string): Client> & RawResult & never; + + /** @deprecated */ + imeActivate

(engine: string): Client

& never; + + /** @deprecated */ + imeActivated(): Client> & RawResult & never; + + /** @deprecated */ + imeActivated

(): Client

; + + /** @deprecated */ + imeActiveEngine(): Client> & string & never; + + /** @deprecated */ + imeActiveEngine

(): Client

; + + /** @deprecated */ + imeAvailableEngines(): Client> & RawResult & never; + + /** @deprecated */ + imeAvailableEngines

(): Client

; + + /** @deprecated */ + imeDeactivated(): Client> & RawResult & never; + + /** @deprecated */ + imeDeactivated

(): Client

; + + init(capabilities?: DesiredCapabilities): Client> & RawResult; + init

(capabilities?: DesiredCapabilities): Client

; + + /** @deprecated in favour of Actions.keyDown */ + keys(value: string | string[]): Client> & RawResult & never; + + /** @deprecated in favour of Actions.keyDown */ + keys

(value: string | string[]): Client

; + + /** @deprecated */ + localStorage(): Client> & RawResult; + + /** @deprecated */ + localStorage

(): Client

; + + /** @deprecated */ + localStorage( + method: Method, + key?: string + ): Client> & RawResult & never; + + /** @deprecated */ + localStorage( + method: Method, + key?: string + ): Client> & RawResult & never; + + /** @deprecated */ + localStorage

( + method: Method, + key?: string | StorageItems + ): Client

; + + /** @deprecated */ + localStorageSize(): Client> & RawResult & never; + + /** @deprecated */ + localStorageSize

(): Client

; + + /** @deprecated in favour of elementIdRect */ + location(type: GeoLocation): Client> & RawResult & never; + + /** @deprecated in favour of elementIdRect */ + location

(type: GeoLocation): Client

; + + /** @deprecated */ + log(type: LoggingPreferences): Client> & never; + + /** @deprecated */ + log

(type: LoggingPreferences): Client

; + + /** @deprecated */ + logTypes(): Client> & RawResult & never; + + /** @deprecated */ + logTypes

(): Client

; + + /** @deprecated in favour of Actions.pointerMove */ + moveTo( + id: ElementId, + xoffset: number, + yoffset: number + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerMove */ + moveTo( + xoffset: number, + yoffset: number + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerMove */ + moveTo

(id: ElementId): Client

; + + /** @deprecated in favour of Actions.pointerMove */ + moveTo

( + id: ElementId, + xoffset: number, + yoffset: number + ): Client

; + + refresh(): Client> & RawResult; + refresh

(): Client

; + + screenshot(): Client> & RawResult; + + session

(): Client

; + + session( + action?: Method, + sessionId?: string + ): Client> & RawResult; + + session

(action?: Method): Client

; + + session

( + action?: Method, + sessionId?: string + ): Client

& null; + + /** @deprecated */ + sessions(): Client> & RawResult & never; + + /** @deprecated */ + sessions

(): Client

; + + /** @deprecated */ + sessionStorage(): Client> & RawResult & never; + + /** @deprecated */ + sessionStorage

(): Client

; + + /** @deprecated */ + sessionStorage(method: Method): Client> & RawResult & never; + + /** @deprecated */ + sessionStorage(method: Method): Client> & RawResult & never; + + /** @deprecated */ + sessionStorage

(method: Method): Client

; + + /** @deprecated */ + sessionStorage( + method: Method, + key: string + ): Client> & RawResult & never; + + /** @deprecated */ + sessionStorage( + method: Method, + key: string + ): Client> & RawResult & never; + + /** @deprecated */ + sessionStorage

( + method: Method, + key: string + ): Client

; + + /** @deprecated */ + sessionStorage( + method: Method, + key: StorageItems + ): Client> & RawResult; + + /** @deprecated */ + sessionStorage

( + method: Method, + key: StorageItems + ): Client

; + + /** @deprecated */ + sessionStorageSize(): Client> & RawResult & never; + + /** @deprecated */ + sessionStorageSize

(): Client

; + + source(): Client> & RawResult; + source

(): Client

; + + status(): Client> & RawResult; + status(): Client; + + /** @deprecated */ + submit(id: ElementId): Client> & RawResult & never; + + /** @deprecated */ submit

(id: ElementId): Client

; - // title + timeouts

(type: Timeouts, ms: number): Client> & RawResult; + + /** @deprecated in favour of timeouts */ + timeoutsAsyncScript(ms: number): Client> & RawResult & never; + + /** @deprecated in favour of timeouts */ + timeoutsAsyncScript

(ms: number): Client

; + + /** @deprecated in favour of timeouts */ + timeoutsImplicitWait(ms: number): Client> & RawResult & never; + + /** @deprecated in favour of timeouts */ + timeoutsImplicitWait

(ms: number): Client

; + + url(): Client> & RawResult; + url(url: string): Client> & RawResult; + url

(url?: string): Client

; + + title(): Client> & RawResult; + title

(): Client

; + + /** @deprecated in favour of Actions.pointerDown */ + touchClick(id: ElementId): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerDown */ + touchClick

(id: ElementId): Client

; + + /** @deprecated in favour of Actions.pointerDown */ + touchDown( + xoffset: number, + yoffset: number + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerDown */ + touchDown

( + xoffset: number, + yoffset: number + ): Client

; + + /** @deprecated in favour of Actions.perform */ + touchFlick( + id: ElementId, + xoffset: number, + yoffset: number, + speed: number + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.perform */ + touchFlick

( + id: ElementId, + xoffset: number, + yoffset: number, + speed: number + ): Client

; + + /** @deprecated in favour of Actions.perform */ + touchLongClick(id: ElementId): Client> & RawResult & never; + + /** @deprecated in favour of Actions.perform */ + touchLongClick

(id: ElementId): Client

; + + /** @deprecated in favour of Actions.pointerMove */ + touchMove( + xoffset: number, + yoffset: number + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerMove */ + touchMove

( + xoffset: number, + yoffset: number + ): Client

; + + /** @deprecated in favour of Actions.perform */ + touchScroll( + id: ElementId, + xoffset: number, + yoffset: number, + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.perform */ + touchScroll

( + id: ElementId, + xoffset: number, + yoffset: number, + ): Client

; + + /** @deprecated in favour of Actions.pointerUp */ + touchUp( + xoffset: number, + yoffset: number, + ): Client> & RawResult & never; + + /** @deprecated in favour of Actions.pointerUp */ + touchUp

( + xoffset: number, + yoffset: number, + ): Client

; + + window(windowHandle?: string): Client> & RawResult; + window

(windowHandle?: string): Client

; + + windowHandle(): Client> & RawResult; + windowHandle

(): Client

; + + windowHandleFullscreen(): Client> & RawResult; + windowHandleFullscreen

(): Client

; + + windowHandleMaximize(): Client> & RawResult; + windowHandleMaximize

(): Client

; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandlePosition( + windowHandle?: string, + position?: Position + ): Client> & RawResult & never; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandlePosition( + position: Position + ): Client> & RawResult & never; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandlePosition

( + windowHandle?: string, + position?: Position + ): Client

; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandlePosition

( + position: Position + ): Client

; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandleSize( + windowHandle?: string, + dimension?: Size + ): Client> & RawResult & never; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandleSize( + dimension: Size + ): Client> & RawResult & never; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandleSize

( + windowHandle?: string, + dimension?: Size + ): Client

; + + /** @deprecated in favour of /session/{session id}/window/rect */ + windowHandleSize

( + dimension?: Size + ): Client

; + + /** @deprecated */ + windowHandles(): Client> & RawResult & never; + + /** @deprecated */ + windowHandles

(): Client

& never; } // State export interface Client { - isEnabled(selector?: string): Client; + hasFocus(selector?: string): Client & boolean; + hasFocus

(selector?: string): Client

; + + isEnabled(selector?: string): Client & boolean; isEnabled

(selector?: string): Client

; - isExisting(selector?: string): Client; + isExisting(selector?: string): Client & boolean; isExisting

(selector?: string): Client

; - isSelected(selector?: string): Client; + isSelected(selector?: string): Client & boolean; isSelected

(selector?: string): Client

; - isVisible(selector?: string): Client; + isVisible(selector?: string): Client & boolean; isVisible

(selector?: string): Client

; - isVisibleWithinViewport(selector?: string): Client; + isVisibleWithinViewport(selector?: string): Client & boolean; isVisibleWithinViewport

(selector?: string): Client

; } - export interface CommandHistoryEntry { - command: string; - args: any[]; - } - // Utility export interface Client { + $(selector: string): Client> & RawResult; + $

(selector: string): Client

; + + $$(selector: string): Client> & RawResult; + $$

(selector: string): Client

; + addCommand( commandName: string, - customMethod: Function, + customMethod: (...args: any[]) => void, overwrite?: boolean - ): Client; + ): Client & undefined; + addCommand

( commandName: string, - customMethod: Function, + customMethod: (...args: any[]) => void, overwrite?: boolean ): Client

; + call

(callback: () => void): Client

& any; + chooseFile( selector: string, localPath: string - ): Client; + ): Client & undefined; + chooseFile(localPath: string): Client; + chooseFile

( selector: string, localPath: string ): Client

; + chooseFile

(localPath: string): Client

; debug(): Client; @@ -773,199 +1587,242 @@ declare namespace WebdriverIO { endAll(): Client; endAll

(): Client

; - getCommandHistory(): Client; + getCommandHistory(): Client & CommandHistoryEntry[]; getCommandHistory

(): Client

; pause(milliseconds: number): Client; pause

(milliseconds: number): Client

; - saveScreenshot(filename?: string): Client; + reload(): Client & string[]; + reload

(): Client

; + + saveScreenshot(filename?: string): Client & Buffer; saveScreenshot

(filename?: string): Client

; - scroll(selector?: string): Client; + scroll(selector?: string): Client> & RawResult; + scroll( selector: string, xoffset: number, yoffset: number - ): Client; + ): Client> & RawResult; + scroll( xoffset: number, yoffset: number - ): Client; + ): Client> & RawResult; + scroll

(selector?: string): Client

; + scroll

( selector: string, xoffset: number, yoffset: number ): Client

; + scroll

( xoffset: number, yoffset: number ): Client

; - uploadFile(localPath: string): Client; + uploadFile(localPath: string): Client> & RawResult; uploadFile

(localPath: string): Client

; waitForEnabled( selector: string, milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForEnabled( milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForEnabled

(selector?: string): Client

; + waitForEnabled

( selector: string, - milliseconds: number, + milliseconds?: number, ): Client

; - waitForEnabled

(milliseconds: number): Client

; + + waitForEnabled

(milliseconds?: number): Client

; + waitForEnabled

( selector: string, - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; + waitForEnabled

( - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; waitForExist( selector: string, milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForExist( milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForExist

(selector?: string): Client

; + waitForExist

( selector: string, - milliseconds: number + milliseconds?: number ): Client

; + waitForExist

(milliseconds: number): Client

; + waitForExist

( selector: string, - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; + waitForExist

( milliseconds: number, - reverse: boolean + reverse?: boolean ): Client

; waitForSelected( selector: string, milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForSelected( milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForSelected

(selector?: string): Client

; + waitForSelected

( selector: string, - milliseconds: number + milliseconds?: number ): Client

; + waitForSelected

(milliseconds: number): Client

; + waitForSelected

( selector: string, - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; + waitForSelected

( - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; waitForText( selector: string, milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForText( milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForText

(selector?: string): Client

; + waitForText

( selector: string, - milliseconds: number + milliseconds?: number ): Client

; - waitForText

(milliseconds: number): Client

; + + waitForText

(milliseconds?: number): Client

; + waitForText

( selector: string, - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; + waitForText

( - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; waitForValue( selector: string, milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForValue( milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForValue

(selector?: string): Client

; + waitForValue

( selector: string, - milliseconds: number + milliseconds?: number ): Client

; - waitForValue

(milliseconds: number): Client

; + + waitForValue

(milliseconds?: number): Client

; + waitForValue

( selector: string, - milliseconds: number, - reverse: boolean, - + milliseconds?: number, + reverse?: boolean, ): Client

; - waitForValue

( - milliseconds: number, - reverse: boolean, + waitForValue

( + milliseconds?: number, + reverse?: boolean, ): Client

; waitForVisible( selector: string, milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForVisible( milliseconds?: number, reverse?: boolean - ): Client; + ): Client & boolean; + waitForVisible

(selector?: string): Client

; + waitForVisible

( selector: string, - milliseconds: number + milliseconds?: number ): Client

; - waitForVisible

(milliseconds: number): Client

; + + waitForVisible

(milliseconds?: number): Client

; + waitForVisible

( selector: string, - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; + waitForVisible

( - milliseconds: number, - reverse: boolean + milliseconds?: number, + reverse?: boolean ): Client

; waitUntil( - condition: () => boolean | Q.IPromise, + condition: () => boolean | Q.IPromise | Client> & RawResult, timeout?: number, timeoutMsg?: string, interval?: number - ): Client; + ): Client & any; + waitUntil

( - condition: () => boolean | Q.IPromise, + condition: () => boolean | Q.IPromise | Client> & RawResult, timeout?: number, timeoutMsg?: string, interval?: number @@ -974,26 +1831,25 @@ declare namespace WebdriverIO { // Window export interface Client { - - - close(windowHandle?: string): Client; + close(windowHandle?: string): Client> & RawResult; close

(windowHandle?: string): Client

; - getCurrentTabId(): Client; + getCurrentTabId(): Client & string; getCurrentTabId

(): Client

; - getTabIds(): Client; + getTabIds(): Client & string[]; getTabIds

(): Client

; getViewportSize(): Client & Size; - getViewportSize(dimension: string): Client; + getViewportSize(dimension: string): Client & number; getViewportSize

(dimension?: string): Client

; newWindow( url: string, windowName: string, windowFeatures: string - ): Client; + ): Client> & RawResult; + newWindow

( url: string, windowName: string, @@ -1002,53 +1858,19 @@ declare namespace WebdriverIO { setViewportSize( size: Size, - type: boolean - ): Client; + type?: boolean + ): Client & undefined; + setViewportSize

( size: Size, - type: boolean + type?: boolean ): Client

; - switchTab(windowHandle?: string): Client; + switchTab(windowHandle?: string): Client> & RawResult; switchTab

(windowHandle?: string): Client

; } - export type Axis = "x" | "y"; - - export interface Options { - protocol: string; - waitforTimeout: number; - coloredLogs: boolean; - logLevel: string; - baseUrl: string; - desiredCapabilities: DesiredCapabilities; - screenshotPath: string; - } - - // Options - export interface Client { - options: Options; - } - - export type DesiredCapabilities = any; - - export interface RemoteOptions { - protocol?: string; - waitforTimeout?: number; - waitforInterval?: number; - coloredLogs?: boolean; - logLevel?: string; - baseUrl?: string; - desiredCapabilities?: DesiredCapabilities; - } - - export interface MultiremoteOptions { - [key: string]: RemoteOptions; - } - - export function remote(options?: RemoteOptions | string): Client; - - export function multiremote(options?: MultiremoteOptions): Client; + export var VERSION: string; } declare var browser: WebdriverIO.Client; @@ -1056,4 +1878,3 @@ declare var browser: WebdriverIO.Client; declare module "webdriverio" { export = WebdriverIO; } - diff --git a/webdriverio/webdriverio-tests.ts b/webdriverio/webdriverio-tests.ts index dc204b2052..826e2f1811 100644 --- a/webdriverio/webdriverio-tests.ts +++ b/webdriverio/webdriverio-tests.ts @@ -1,6 +1,5 @@ /// -/// import {assert} from "chai"; @@ -34,12 +33,12 @@ describe("my webdriverio tests", function(){ this.timeout(99999999); var client: webdriverio.Client; - before(function(done){ - client = webdriverio.remote({ desiredCapabilities: {browserName: "phantomjs"} }); - client.init(done); + before(function() { + client = webdriverio.remote({ desiredCapabilities: { browserName: "phantomjs" } }); + client.init(); }); - it("Github test",function() { + it("Github test", function() { client.url("https://github.com/"); var elementSize = client.getElementSize(".header-logo-wordmark"); @@ -111,7 +110,7 @@ webdriverio .selectorExecute("//div", function(inputs: HTMLElement[], message: string) { return inputs.length + " " + message; }, "divs on the page") - .then(function(res){ + .then(function(res: string) { console.log(res); }) .end();