This commit is contained in:
2025-12-30 10:59:25 +08:00
parent 40f5578f85
commit 3bede583bf

32
src/playwright/actions.ts Normal file
View File

@@ -0,0 +1,32 @@
import { Page } from 'playwright';
export interface Action {
type: string;
payload: Record<string, any>;
}
export class PlaywrightExecutor {
constructor(private page: Page) { }
async execute(action: Action): Promise<void> {
switch (action.type) {
case 'goto':
await this.page.goto(action.payload.url);
break;
case 'type':
await this.page.fill(action.payload.selector, action.payload.text);
break;
case 'click':
await this.page.click(action.payload.selector);
break;
case 'waitForLoad':
await this.page.waitForLoadState('networkidle');
break;
case 'screenshot':
await this.page.screenshot({ path: action.payload.path });
break;
default:
throw new Error(`未知动作: ${action.type}`);
}
}
}