UNPKG

magnitude-core

Version:
81 lines (80 loc) 2.21 kB
import { Page, BrowserContext, PageScreenshotOptions } from "playwright"; import { WebAction } from '@/web/types'; import { ActionVisualizer } from "./visualizer"; import { TabState } from "./tabs"; import { Image } from '@/memory/image'; export interface WebHarnessOptions { virtualScreenDimensions?: { width: number; height: number; }; } export declare class WebHarness { /** * Executes web actions on a page * Not responsible for browser lifecycle */ readonly context: BrowserContext; private options; private stability; readonly visualizer: ActionVisualizer; private transformer; private tabs; constructor(context: BrowserContext, options?: WebHarnessOptions); retrieveTabState(): Promise<TabState>; start(): Promise<void>; get page(): Page; screenshot(options?: PageScreenshotOptions): Promise<Image>; _type(content: string): Promise<void>; transformCoordinates({ x, y }: { x: number; y: number; }): { x: number; y: number; }; click({ x, y }: { x: number; y: number; }): Promise<void>; rightClick({ x, y }: { x: number; y: number; }): Promise<void>; doubleClick({ x, y }: { x: number; y: number; }): Promise<void>; drag({ x1, y1, x2, y2 }: { x1: number; y1: number; x2: number; y2: number; }): Promise<void>; type({ content }: { content: string; }): Promise<void>; clickAndType({ x, y, content }: { x: number; y: number; content: string; }): Promise<void>; scroll({ x, y, deltaX, deltaY }: { x: number; y: number; deltaX: number; deltaY: number; }): Promise<void>; switchTab({ index }: { index: number; }): Promise<void>; newTab(): Promise<void>; navigate(url: string): Promise<void>; selectAll(): Promise<void>; enter(): Promise<void>; backspace(): Promise<void>; tab(): Promise<void>; goBack(): Promise<void>; executeAction(action: WebAction): Promise<void>; waitForStability(timeout?: number): Promise<void>; }