update
This commit is contained in:
32
src/playwright/actions.ts
Normal file
32
src/playwright/actions.ts
Normal 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}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user