chromeless
Version:
🖥 Chrome automation made simple. Runs locally or headless on AWS Lambda.
63 lines (62 loc) • 2.96 kB
TypeScript
import { ChromelessOptions, Headers, Cookie, CookieQuery, PdfOptions, DeviceMetrics, ScreenshotOptions } from './types';
export default class Chromeless<T extends any> implements Promise<T> {
private queue;
private lastReturnPromise;
constructor(options?: ChromelessOptions, copyInstance?: Chromeless<any>);
readonly [Symbol.toStringTag]: 'Promise';
then<U>(onFulfill?: ((value: T) => U | PromiseLike<U>) | null, onReject?: ((error: any) => U | PromiseLike<U>) | null): Promise<U>;
catch<U>(onrejected?: (reason: any) => U | PromiseLike<U>): Promise<U>;
goto(url: string, timeout?: number): Chromeless<T>;
setUserAgent(useragent: string): Chromeless<T>;
click(selector: string): Chromeless<T>;
wait(timeout: number): Chromeless<T>;
wait(selector: string, timeout?: number): Chromeless<T>;
wait(fn: (...args: any[]) => boolean, ...args: any[]): Chromeless<T>;
clearCache(): Chromeless<T>;
clearStorage(origin: string, storageTypes: string): Chromeless<T>;
focus(selector: string): Chromeless<T>;
press(keyCode: number, count?: number, modifiers?: any): Chromeless<T>;
type(input: string, selector?: string): Chromeless<T>;
back(): Chromeless<T>;
forward(): Chromeless<T>;
refresh(): Chromeless<T>;
mousedown(selector: string): Chromeless<T>;
mouseup(selector: string): Chromeless<T>;
mouseover(): Chromeless<T>;
scrollTo(x: number, y: number): Chromeless<T>;
scrollToElement(selector: string): Chromeless<T>;
setViewport(options: DeviceMetrics): Chromeless<T>;
setHtml(html: string): Chromeless<T>;
setExtraHTTPHeaders(headers: Headers): Chromeless<T>;
evaluate<U extends any>(fn: (...args: any[]) => U, ...args: any[]): Chromeless<U>;
inputValue(selector: string): Chromeless<string>;
exists(selector: string): Chromeless<boolean>;
screenshot(selector?: string, options?: ScreenshotOptions): Chromeless<string>;
html(): Chromeless<string>;
htmlUrl(): Chromeless<string>;
pdf(options?: PdfOptions): Chromeless<string>;
/**
* Get the cookies for the current url
*/
cookies(): Chromeless<Cookie[] | null>;
/**
* Get a specific cookie for the current url
* @param name
*/
cookies(name: string): Chromeless<Cookie | null>;
/**
* Get a specific cookie by query. Not implemented yet
* @param query
*/
cookies(query: CookieQuery): Chromeless<Cookie[] | null>;
allCookies(): Chromeless<Cookie[]>;
setCookies(name: string, value: string): Chromeless<T>;
setCookies(cookie: Cookie): Chromeless<T>;
setCookies(cookies: Cookie[]): Chromeless<T>;
deleteCookies(name: string, url: string): Chromeless<T>;
clearCookies(): Chromeless<T>;
clearInput(selector: string): Chromeless<T>;
setFileInput(selector: string, files: string): Chromeless<T>;
setFileInput(selector: string, files: string[]): Chromeless<T>;
end(): Promise<T>;
}