Playwright可自动化Edge浏览器批量填充表单,支持绕过反爬、保持登录态、触发JS事件;需安装Playwright并使用Chromium内核Edge(116+),通过page.fill()等方法操作元素,配合waitForSelector和storageState实现动态字段处理与登录态复用。

用Edge浏览器自动化测试脚本批量填充表单,能绕过网页反爬机制、保留登录态、真实触发JavaScript事件,比纯HTTP请求更可靠。
准备环境:安装Playwright和Edge驱动
打开命令行,执行:npm init -y && npm install @playwright/test。这会自动下载与当前系统匹配的Edge浏览器二进制文件,无需手动安装Edge或配置WebDriver。
Playwright内置浏览器管理,【不兼容旧版Edge Legacy,必须使用Chromium内核的Microsoft Edge(版本116+)】。若系统未安装,Playwright会在首次运行时自动拉取,路径为node_modules/.playwright/下对应目录。
编写基础填充脚本
新建fill-form.spec.ts,写入以下内容:
第一步:导入模块并定义测试用例;第二步:在test回调中启动Edge上下文,启用headless: false便于调试;第三步:用page.goto()访问目标表单页;第四步:用page.fill()按CSS选择器填充输入框,例如page.fill('input[name="username"]', 'test001');第五步:对下拉框用page.selectOption(),对复选框用page.check(),提交前务必加await page.waitForTimeout(300)防JS未就绪。
注意:若表单含动态加载字段(如城市二级联动),需在fill()后插入await page.waitForSelector('.city-dropdown')等待元素出现,否则操作会失败。
批量处理多组数据
方法一:用for...of循环遍历数组
报备邮件台账登记工具 — 解析 .eml(含 zip)提取关键信息,生成 Excel 台账供下载;支持模板追加、自动去重。触发词:整理邮件、报备邮件台账、邮件台账登记、邮件归档、报备登记、填写报备台账、邮件解析台账、email ledger。
将数据存为二维数组:const data = [['张三', '13800138000', '北京'], ['李四', '13900139000', '上海']];循环体内调用page.fill()并每次提交后page.goto()刷新页面。
方法二:用test.describe.parallel并发执行(仅限Playwright v1.40+)
每个测试用例独立启动Page实例,避免状态污染。但并发数默认为4,超过可能触发网站频率限制,【建议配合page.route()拦截非必要资源(如图片、字体)以提速】。
处理验证码和登录态保持
若表单页需登录才能访问,不要在每次循环里重复登录。先在全局beforeAll中完成登录,保存storageState到文件;后续所有测试直接加载该状态:browser.newContext({ storageState: './auth.json' })。
遇到图形验证码:用page.screenshot()截取验证码区域→调用第三方OCR接口(如百度文字识别)→解析结果→填入输入框。此步骤必须加await等待API返回,否则会跳过校验直接提交。
这一步操作起来很简单,直接把文件拖进去就行。

















