@monitoro/herd
Version:
Automate your browser, build AI web tools and MCP servers with Monitoro Herd
80 lines (79 loc) • 2.96 kB
TypeScript
import { EventEmitter } from 'events';
import type { Page } from './Page.js';
export interface SerializedDOMNode {
nodeType: string;
tagName?: string;
attributes?: Record<string, string>;
children?: (SerializedDOMNode | null)[];
index?: number;
innerHTML?: string;
position?: {
x: number;
y: number;
};
size?: {
width: number;
height: number;
};
textContent?: string;
_meta: {
selector: string;
rootSelector?: string;
};
}
export declare class Node extends EventEmitter {
protected _serialized: SerializedDOMNode;
protected _page: Page;
protected _children: Node[];
constructor(serialized: SerializedDOMNode, page: Page);
get nodeType(): number;
get nodeName(): string;
get nodeValue(): string | null;
get tagName(): string;
get textContent(): string | null;
private isBlockElement;
get innerText(): string | null;
get innerHTML(): string | undefined;
get childNodes(): Node[];
get firstChild(): Node | null;
get lastChild(): Node | null;
getAttribute(name: string): string | null;
hasAttribute(name: string): boolean;
click(options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
type(text: string, options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
focus(options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
blur(options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
hover(options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
scrollIntoView(options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
setValue(value: string | boolean, options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
dispatchEvent(eventName: string, detail?: unknown, options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void | -1>;
dragTo(target: Node | string, options?: {
waitForNavigation?: 'load' | 'change' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
}): Promise<void>;
$(selector: string): Promise<Node | null>;
$$(selector: string): Promise<Node[]>;
querySelector(selector: string): Promise<Node | null>;
querySelectorAll(selector: string): Promise<Node[]>;
getBoundingClientRect(): {
x: number;
y: number;
width: number;
height: number;
};
}