一、自动化表单基础:从手动填表到机器代劳

说实话,我最早接触自动化表单填写,纯粹是被逼的。

那时候还在做数据采集,每天要手动录入几百条信息。复制、粘贴、点击、提交……重复到怀疑人生。后来我就在想:这些机械操作,能不能让机器替我干?

嗯,答案当然是能。而且比你想象的简单得多。

什么是自动化表单填写?

说白了,就是用代码模拟人的操作——在输入框里打字、勾选选项、点击按钮、提交数据。整个过程不需要你动一下鼠标。

我习惯把它拆成三步:

  • 定位元素:找到输入框、下拉菜单、按钮这些组件
  • 模拟操作:填内容、选选项、点提交
  • 处理反馈:等页面加载、检查错误提示、处理验证码

你可能会问:这和手动填有什么区别?区别大了。手动填一小时,自动化可能只要几秒钟。而且它不会累,不会手抖,不会看错行。

应用场景分析:哪些地方用得上?

我在项目中遇到过三类最常见的场景,给你盘一盘:

1. 数据录入

这是最直接的场景。比如把Excel里的客户信息批量导入CRM系统,或者把爬到的数据填进后台管理页面。

我记得有个项目,客户每天要录入2000条物流单号。手动操作需要3个人轮班。我用Playwright写了个脚本,一台机器半小时搞定。嗯,那3个人后来转岗去做更有价值的事了。

2. 批量注册

这个场景比较敏感,但确实有正当用途。比如测试环境需要生成100个测试账号,或者为内部系统批量开通用户。

我曾经帮一个团队做过压力测试的账号生成器。他们需要5000个不同权限的账号。手动注册?那得注册到明年。自动化脚本跑了大概40分钟,全部搞定。

注意:批量注册如果用在非授权场景,可能违反平台规则。我建议你只在测试环境或自有系统上使用。

3. 爬虫登录

很多网站的数据需要登录后才能看到。这时候自动化表单就派上用场了——自动填用户名密码,处理验证码,维持登录状态。

我之前爬一个行业数据平台,每天要登录30多次。每次都要手动输验证码,烦得要死。后来用自动化配合打码平台,实现了全自动登录。数据采集效率提升了10倍不止。

技术选型对比:Selenium vs Playwright vs Puppeteer

选工具这事,我踩过不少坑。这三款主流工具,我挨个说说我的真实感受:

特性 Selenium Playwright Puppeteer
支持浏览器 Chrome, Firefox, Safari, Edge Chrome, Firefox, Safari, Edge 仅Chrome/Chromium
语言支持 Python, Java, C#, JS等 Python, JS/TS, Java, .NET 仅JS/TS
速度 较慢
稳定性 中等(常有隐式等待问题) 高(自动等待机制)
学习曲线 平缓 中等 中等
社区生态 最成熟 快速增长 成熟

Selenium:老牌劲旅,但有点笨重

Selenium是我最早用的工具。它最大的优势是生态成熟——你遇到的大部分问题,网上都能找到答案。

但说实话,我现在用得少了。为什么?因为它太慢了。每次启动浏览器都要好几秒,而且经常因为页面加载超时报错。我有个项目用Selenium跑批量注册,平均每3分钟就崩一次,气得我差点砸键盘。

我的建议:如果你团队里有人只会Java,或者项目需要兼容老旧系统,选Selenium。否则,我建议你看看下面两个。

Playwright:我现在的首选

Playwright是微软出的,这两年火得不行。我个人习惯用它来做大部分自动化任务。

它有几个让我爱不释手的特点:

  • 自动等待:不用写一堆显式等待代码,它自己会等元素出现
  • 多浏览器支持:一套API跑Chrome、Firefox、Safari
  • 网络拦截:可以拦截请求、修改响应,调试起来特别方便

我记得有一次要处理一个特别复杂的表单,里面有动态加载的下拉菜单和验证码。用Selenium折腾了两天没搞定,换成Playwright,半天就写完了。嗯,从那以后我就成了Playwright的忠实用户。

Puppeteer:轻量级选手,但只认Chrome

Puppeteer是Google出的,只支持Chrome。如果你只需要操作Chrome,它是个不错的选择。

它的优势是轻量和快。启动速度比Selenium快一倍不止。而且和Chrome DevTools Protocol深度集成,能做很多底层操作。

但有个坑:它不支持Firefox和Safari。如果你要测试跨浏览器兼容性,Puppeteer就帮不上忙了。

小技巧:如果你用Puppeteer做爬虫,可以配合puppeteer-extrapuppeteer-extra-plugin-stealth来绕过反爬检测。我试过,效果还不错。

怎么选?我给你个决策思路

你想想看,选工具其实就三个维度:

  1. 你要操作什么浏览器?——只用Chrome就Puppeteer,多浏览器就Playwright或Selenium
  2. 你用什么语言?——Python或JS首选Playwright,Java就Selenium
  3. 你追求速度还是稳定性?——要快选Playwright或Puppeteer,要稳定选Playwright

我个人现在90%的项目都用Playwright。剩下的10%是那些必须用Java的老项目,没办法,只能继续用Selenium。

好了,这一章就聊到这儿。下一章我会带你手写第一个自动化表单脚本,到时候你就知道这些工具到底怎么用了。