mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-05 07:17:04 +00:00
Added types for node-horseman (#20030)
* Added declarations for 'node-horseman'. * Linting is successful. * Made required changes for pushing to @types.
This commit is contained in:
Vendored
+241
@@ -0,0 +1,241 @@
|
||||
// Type definitions for node-horseman 3.3
|
||||
// Project: https://github.com/johntitus/node-horseman#readme
|
||||
// Definitions by: Pratheek Adidela <https://github.com/apratheek>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.2
|
||||
|
||||
export = horseman;
|
||||
|
||||
declare class horseman {
|
||||
constructor(options: any);
|
||||
/** Handle page events inside PhantomJS. Phantom receives callback return value with .at but not with .on */
|
||||
at(eventType: string, callback: () => void): this;
|
||||
|
||||
/** Get the value of an attribute for a selector. */
|
||||
attribute(selector: string, attr: string): string;
|
||||
|
||||
/** Use basic HTTP authentication when opening a page. */
|
||||
authentication(username: string, password: string): this;
|
||||
|
||||
/** Go back a page. */
|
||||
back(): this;
|
||||
|
||||
/** Get the bounding rectangle of a selector. */
|
||||
boundingRectangle(selector: string): ClientRect;
|
||||
|
||||
/** Clear an input field. */
|
||||
clear(selector: string): any;
|
||||
|
||||
/** Click on a selector and fire a 'click event'. */
|
||||
click(selector: string): this;
|
||||
|
||||
/** Close the instance and perform cleanup. */
|
||||
close(): this;
|
||||
|
||||
/** Close a tab and release its resources. */
|
||||
closeTab(tabNumber: string): this;
|
||||
|
||||
/** Set the cookies for Phantom. */
|
||||
cookies(args: object | object[] | string): this;
|
||||
/** Get the cookies from Phantom. */
|
||||
cookies(): string;
|
||||
|
||||
/** Count the number of occurances of 'selector' on the page. */
|
||||
count(selector: string): number;
|
||||
|
||||
/** Save a cropped screenshot to disk. */
|
||||
crop(area: string | object, path: string): this;
|
||||
|
||||
/** Take a base64 encoded cropped screenshot. */
|
||||
cropBase64(area: string, type: string | 'PNG'): any;
|
||||
|
||||
/** Get the value of an css property of a selector. */
|
||||
cssProperty(selector: string, prop: string): string;
|
||||
|
||||
/** Execute a function without breaking the api chain. */
|
||||
do(fn: () => void): this;
|
||||
|
||||
/** Download a URL. */
|
||||
download(url: string, path: string, binary: boolean, method: string, data: string): this;
|
||||
|
||||
/** Run a javascript function on the current page and optionally return the results. */
|
||||
evaluate(fn: () => void, args?: any[]): this;
|
||||
|
||||
/** Determine if the selector exists, at least once, on the page. */
|
||||
exists(selector: string): boolean;
|
||||
|
||||
/** Go forward a page. */
|
||||
forward(): this;
|
||||
|
||||
/** Get the count of frames inside the current frame. */
|
||||
frameCount(): number;
|
||||
|
||||
/** Get the name of the current frame. */
|
||||
frameName(): string;
|
||||
|
||||
/** Get the names of the frames inside the current frame. */
|
||||
frameNames(): string;
|
||||
|
||||
/** Set headers sent to the remote server during an 'open'. */
|
||||
headers(headers: object[]): this;
|
||||
|
||||
/** Get the height of an element. */
|
||||
height(selector: string): number;
|
||||
|
||||
/** Get the HTML for the page, or optionally for a selector. */
|
||||
html(selector?: string, file?: string): Promise<string>;
|
||||
|
||||
/** Includes javascript script from a url on the page. */
|
||||
includeJs(url: string): this;
|
||||
|
||||
/** Injects javascript from a file into the page. */
|
||||
injectJs(file: string): this;
|
||||
|
||||
/** Fire a key event. */
|
||||
keyboardEvent(type?: string, key?: string, modifier?: number): this;
|
||||
|
||||
/** Log the output from either a previous chain method, or a string the user passed in. */
|
||||
log(output?: string): this;
|
||||
|
||||
/** Run javascript on the page. */
|
||||
manipulate(fn: () => void, args?: any[]): this;
|
||||
|
||||
/** Fire a mouse event. */
|
||||
mouseEvent(type?: string, x?: number, y?: number, button?: string): this;
|
||||
|
||||
/** Handles page events. * eventType can be one of:
|
||||
* initialized - callback()
|
||||
* loadStarted - callback()
|
||||
* loadFinished - callback(status)
|
||||
* tabCreated - callback(tabNum, tab)
|
||||
* tabClosed - callback(tabNum, tab)
|
||||
* urlChanged - callback(targetUrl)
|
||||
* navigationRequested - callback(url, type, willNavigate, main)
|
||||
* resourceRequested - callback(requestData, networkRequest)
|
||||
* resourceReceived - callback(response)
|
||||
* pageCreated - callback(newPage)
|
||||
* consoleMessage(msg, lineNum, sourceId)
|
||||
* alert - callback(msg)
|
||||
* confirm - callback(msg)
|
||||
* prompt - callback(msg, defaultVal)
|
||||
* filePicker - callback(oldFile)
|
||||
* error - callback(msg, trace);
|
||||
* timeout - callback(type)
|
||||
*/
|
||||
on(event: string | "timeout" | "tabCreated" | "tabClosed"| "resourceTimeout"| "urlChanged"| "resourceReceived"| "pageCreated"| "loadFinished", func: (...args: any[]) => void): this;
|
||||
|
||||
/** Open a url in Phantom. */
|
||||
open(url: string, method?: string | 'GET'): this;
|
||||
|
||||
/** Open URL in a new tab */
|
||||
openTab(url: string): this;
|
||||
|
||||
pageMaker(url: any, _page: any, ...args: any[]): any;
|
||||
|
||||
/** Save the current page as a pdf. */
|
||||
pdf(path: string, paperSize: {
|
||||
format?: "A3" | "A4" | "A5" | "Legal" | "Letter" | "Tabloid",
|
||||
orientation?: "portrait" | "landscape",
|
||||
margin?: string
|
||||
}): this;
|
||||
|
||||
/** Get the plain text for the body of the page. */
|
||||
plainText(): string;
|
||||
|
||||
/** Send Post data to a url. */
|
||||
post(url: string, postData: string): this;
|
||||
|
||||
/** Send Put data to a url. */
|
||||
put(url: string, putData: string): this;
|
||||
|
||||
/** Reload the page. */
|
||||
reload(): this;
|
||||
|
||||
/** Save a screenshot to disk. */
|
||||
screenshot(path: string): this;
|
||||
|
||||
/** Take a base64 encoded screenshot, e.g., PNG. */
|
||||
screenshotBase64(type: string | 'PNG'): any;
|
||||
|
||||
/** Scroll to a position on the page. */
|
||||
scrollTo(top: number, left: number): this;
|
||||
|
||||
/** Select a value in an html select element. */
|
||||
select(selector: string, value: string): any;
|
||||
|
||||
/** Change the proxy settings. */
|
||||
setProxy(ip: string, port: string, type: string, username: string, password: string): this;
|
||||
|
||||
/** Get the HTTP status of the last opened page. */
|
||||
status(): string;
|
||||
|
||||
/** Switch to a child frame. */
|
||||
switchToChildFrame(nameOrPosition: string | number): this;
|
||||
|
||||
/** Switch to the focused frame. */
|
||||
switchToFocusedFrame(): this;
|
||||
|
||||
/** Switch to a frame inside the current frame. */
|
||||
switchToFrame(nameOrPosition: string | number): this;
|
||||
|
||||
/** Switch to the main frame. */
|
||||
switchToMainFrame(): this;
|
||||
|
||||
/** Switch to the parent frame of the current frame. */
|
||||
switchToParentFrame(): this;
|
||||
|
||||
/** Switch to another of the open tabs */
|
||||
switchToTab(tabNumber: number): this;
|
||||
|
||||
/** Returns the number of tabs */
|
||||
tabCount(): number;
|
||||
|
||||
/** Get the text for the body of the page, or optionally for a selector. */
|
||||
text(selector?: string): string;
|
||||
|
||||
/** Get the title of the current page. */
|
||||
title(): string;
|
||||
|
||||
/** Simulate a keypress on a selector */
|
||||
type(selector: string, text: string, options?: object): this;
|
||||
|
||||
/** Upload a file to the page. */
|
||||
upload(selector: string, file: string): this;
|
||||
|
||||
/** Get the url of the current page. */
|
||||
url(): string;
|
||||
|
||||
/** Get or set the user agent for Phantom. */
|
||||
userAgent(...args: any[]): any;
|
||||
|
||||
/** Get the value of an element. */
|
||||
value(selector: string): string;
|
||||
/** Sets the value of an element. */
|
||||
value(selector: string, value: string): this;
|
||||
|
||||
/** Set the size of the viewport. */
|
||||
viewport(width: number, height: number): this;
|
||||
/** Get the size of the viewport. */
|
||||
viewport(): object;
|
||||
|
||||
/** Determines if an element is visible. */
|
||||
visible(selector: string): boolean;
|
||||
|
||||
/** Wait for a specified period of time */
|
||||
wait(milliseconds: number): this;
|
||||
|
||||
/** Waits for a function to evaluate to a given value in browser. If optsOrFn is a function, use the classic signature waitFor(fn, arg1, arg2, value), If arg is an object, use waitFor(options). */
|
||||
waitFor(...args: any[]): this;
|
||||
|
||||
/** Wait for a page load to occur */
|
||||
waitForNextPage(object?: object): this;
|
||||
|
||||
/** Wait for a selector to be present on the current page. */
|
||||
waitForSelector(selector: string, options: object): this;
|
||||
|
||||
/** Get the width of an element. */
|
||||
width(selector: string): number;
|
||||
|
||||
/** Set the zoom factor of the page. */
|
||||
zoom(zoomFactor: number): this;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import horseman = require("node-horseman");
|
||||
|
||||
const horse = new horseman({
|
||||
timeout: 10000
|
||||
});
|
||||
|
||||
horse.on('error', (msg: any, trace: any) => { console.log(msg, trace); })
|
||||
.open("http://example.org/").waitForNextPage().html().then((pageContent: string) => {
|
||||
console.log(pageContent);
|
||||
horse.close();
|
||||
});
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"strictFunctionTypes": true,
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"node-horseman-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user