1. Playwright/Puppeteer 精确脚本与 LLM 驱动浏览器各适合哪些稳定页面和长尾页面
Playwright/Puppeteer 这类确定性的精确脚本与 LLM 驱动的浏览器智能体,分别适合哪些稳定页面和长尾页面场景?
- 理解确定性自动化与智能体自动化的本质差异
- 能根据页面稳定性、变更频率和长尾程度选择合适方案
- 理解两者在成本、可维护性和泛化能力上的权衡
Playwright/Puppeteer 精确脚本适合结构稳定、选择器可靠、变更频率低的页面,例如内部管理系统、固定表单、稳定的 API 后端页面。这类页面用确定性选择器(如 data-testid、稳定 CSS 选择器)编写,执行快、成本低、可断言、可调试,适合需要高可靠性和可审计性的核心流程。LLM 驱动的浏览器智能体适合长尾页面、页面频繁改版、参数不固定或需要自然语言理解的场景,例如第三方 SaaS 页面、数据分析网站、动态渲染的复杂页面。智能体通过观察 DOM、可访问性树和截图理解页面语义,对布局变化鲁棒,但成本高、延迟大、结果不确定。最佳实践是分层:核心稳定流程用确定性脚本,长尾不确定流程用智能体,并用 failover 机制在两者之间切换。
关键是要认识到"确定性"与"智能"是互补而非替代关系。稳定页面用脚本能获得确定性、低成本和高可审计性;长尾页面用智能体获得泛化能力。选择依据是"页面结构随时间变化的频率"而非需求的复杂程度。
// Playwright 确定性脚本:稳定页面
await page.goto('https://internal.example.com/orders');
await page.getByTestId('search-input').fill('ORD-123');
await page.getByRole('button', { name: '查询' }).click();
await expect(page.getByText('ORD-123')).toBeVisible();
// LLM 驱动(Browser-Use 风格):长尾页面
const agent = useAgent({ model: 'claude-sonnet' });
await agent.run('在商品列表中找到标题为"无线降噪耳机"的商品并点击加入购物车');