cabbie-sync
Version:
A synchronous webdriver client
112 lines (104 loc) • 4.47 kB
Flow
/**
* @flow
* This file is generated automatically, run npm run build to re-generate.
**/
import ApplicationCacheStatuses from './enums/application-cache-statuses.js';
import type ApplicationCacheStatus from './enums/application-cache-statuses.js';
import BrowserOrientations from './enums/browser-orientations.js';
import type BrowserOrientation from './enums/browser-orientations.js';
import Capabilities from './enums/capabilities.js';
import type Capability from './enums/capabilities.js';
import KeyboardKeys from './enums/keyboard-keys.js';
import type KeyboardKey from './enums/keyboard-keys.js';
import LogLevels from './enums/log-levels.js';
import type LogLevel from './enums/log-levels.js';
import LogSources from './enums/log-sources.js';
import type LogSource from './enums/log-sources.js';
import Modes from './enums/modes.js';
import type Mode from './enums/modes.js';
import MouseButtons from './enums/mouse-buttons.js';
import type MouseButton from './enums/mouse-buttons.js';
import SelectorTypes from './enums/selector-types.js';
import type SelectorType from './enums/selector-types.js';
import TimeOutTypes from './enums/time-out-types.js';
import type TimeOutType from './enums/time-out-types.js';
import ActiveWindow from './active-window.js';
import Alert from './alert.js';
import Browser from './browser.js';
import CookieStorage from './cookie-storage.js';
import Element from './element.js';
import Frame from './frame.js';
import GlobalMouse from './global-mouse.js';
import GlobalTouch from './global-touch.js';
import IME from './ime.js';
import LocalStorage from './local-storage.js';
import Mouse from './mouse.js';
import Navigator from './navigator.js';
import SessionStorage from './session-storage.js';
import TimeOut from './time-out.js';
import Touch from './touch.js';
import WindowHandle from './window-handle.js';
import type { Options } from './flow-types/options';
import type { Session } from './flow-types/session-data';
import Connection from './connection';
import Debug from './debug';
import Driver from './driver';
import parseResponse from './utils/parse-response';
import Status from './status';
import waitFor from './utils/wait-for';
export { Connection, Debug, Driver, Status };
/*
* Create a new cabbie Driver. See [getting started](/getting-started) for examples.
*/
export default function createCabbieDriver(remote: string, options: Options = {}): Driver {
return new Driver(remote, options);
}
export type { Options };
/*
* Returns a list of the currently active sessions
*
* Note: Appears not to be supported by the selenium-standalone-server!
*/
export function getSessions(remote: string, options: Options = {}): Array<Session> {
const connection = new Connection(remote, remote, new Debug(options));
const rawSessions = connection.request('GET', '/sessions');
const sessions = parseResponse(rawSessions);
return sessions.map(session => ({ sessionID: session.id, capabilities: session.capabilities }));
}
/*
* Gets the selenium-system status
*/
export function getStatus(remote: string, options: Options = {}): Status {
const connection = new Connection(remote, remote, new Debug(options));
const rawResponse = connection.request('GET', '/status');
const response = parseResponse(rawResponse);
return new Status(response);
}
let chromedriverRunning = false;
/*
* Start a chromedriver instance. You must have installed chromedriver to use this:
*
* ```
* npm install chromedriver --save-dev
* ```
*/
export function startChromedriver(): void {
if (chromedriverRunning) {
return;
}
let chromedriver;
try {
chromedriver = (require: any)('chromedriver');
} catch (ex) {
throw new Error('You must install the chromedriver module via "npm install chromedriver --save-dev" to call ' + 'cabbie.startChromedriver();');
}
const cd = chromedriver;
cd.start().unref();
process.once('exit', code => {
cd.stop();
});
chromedriverRunning = true;
}
export { waitFor };
export {ApplicationCacheStatuses, BrowserOrientations, Capabilities, KeyboardKeys, LogLevels, LogSources, Modes, MouseButtons, SelectorTypes, TimeOutTypes, ActiveWindow, Alert, Browser, CookieStorage, Element, Frame, GlobalMouse, GlobalTouch, IME, LocalStorage, Mouse, Navigator, SessionStorage, TimeOut, Touch, WindowHandle};
export type {ApplicationCacheStatus, BrowserOrientation, Capability, KeyboardKey, LogLevel, LogSource, Mode, MouseButton, SelectorType, TimeOutType};