@antithesishq/ bombadil/ browser #
Exports #
Action #
type Action<
Number = number,
String = string
> = CustomAction<JSON[]> | "Back" | "Forward" | "Reload" | "Wait" | {
Click: {
fingerprint: Fingerprint;
point: Point<Number>;
};
} | {
DoubleClick: {
fingerprint: Fingerprint;
point: Point<Number>;
delayMillis?: Range;
};
} | {
TypeText: {
text: String;
delayMillis?: Range;
};
} | {
PressKey: {
code: number;
};
} | {
ScrollUp: {
origin: Point;
distance: Number;
};
} | {
ScrollDown: {
origin: Point;
distance: Number;
};
} | {
SetFileInputFiles: {
selector: string;
files: string[];
};
} | {
MouseDrag: {
from: Point;
to: Point;
steps: Number;
delayMillis: Number;
};
} | {
SetViewport: {
width: Number;
height: Number;
};
}ActionTemplate #
type ActionTemplate = Action<Range, StringGenerator>ConsoleEntry #
type ConsoleEntry = {
timestamp: number;
level: "warning" | "error";
args: JSON[];
}Fingerprint #
DOM element fingerprint. String fields are either non-blank
or null, and structuralPath is set iff
all other nullable fields are null.
type Fingerprint = {
testId: string | null;
id: string | null;
role: string | null;
accessibleName: string | null;
tag: string;
href: string | null;
nameAttr: string | null;
placeholder: string | null;
inputType: string | null;
textContent: string | null;
structuralPath: string | null;
}NavigationEntry #
type NavigationEntry = {
id: number;
title: string;
url: string;
}Point #
type Point<Number = number> = {
x: Number;
y: Number;
}Resources #
interface Resources {
js_heap_used: number;
js_heap_total: number;
dom_nodes: number;
documents: number;
js_event_listeners: number;
layout_objects: number;
timestamp: number;
thread_time: number;
task_duration: number;
script_duration: number;
}State #
interface State {
document: HTMLDocument;
window: Window;
navigationHistory: {
back: NavigationEntry[];
current: NavigationEntry;
forward: NavigationEntry[];
};
errors: {
uncaughtExceptions: {
text: string;
line: number;
column: number;
url: string | null;
remote_object: {
type_name: string;
subtype: string | null;
class_name: string | null;
description: string | null;
value: unknown;
} | null;
stacktrace: {
name: string;
line: number;
column: number;
url: string;
}[] | null;
}[];
};
console: ConsoleEntry[];
lastAction: Action | null;
resources: Resources;
}actions #
function actions(generate: () => Tree<ActionTemplate> | ActionTemplate[]): ActionGenerator<ActionTemplate>;extract #
function extract<T extends JSON>(query: (state: State) => T): Cell<T>;getFingerprint #
function getFingerprint(element: Element): Fingerprint;registerCustomAction #
Register a new custom action, returning a function used to create action templates in generators. Name must be unique.
The first two parameters to the handler are
Document and Window, and then any
arguments passed to the function.
function registerCustomAction<Args extends JSON[]>(name: string, handler: (document: Document, window: Window, ...args: Args) => Promise<void>): (...args: Args) => ActionTemplate;weighted #
function weighted(value: [number, ActionTemplate | ActionGenerator<ActionTemplate>][]): ActionGenerator<ActionTemplate>;