
简介Automa作为一款免费开源的Chrome扩展凭借无代码拖拽式操作让普通用户无需编程即可完成网页表单自动填写、重复任务执行、批量数据采集与页面定时监控等常见Web自动化场景可广泛用于日常办公和测试运维。该压缩包为v1.28.27版本离线安装包内含69个文件以js逻辑脚本、css样式、html界面结构为主配合svg/png图标与woff/woff2字体资源整体仅2.1MB下载后拖拽到浏览器扩展管理页面即可直接使用。包内已集成中英文等多语言区域文件并适配浅色/深色主题便于不同环境快速切换。目前已有2618人学习下载适合希望提升浏览器操作效率的运营、测试及普通用户离线部署。1. automa-chrome-v1.28.27浏览器自动化插件的离线安装包与实战起点拿到这个v1.28.27的zip包时很多第一次接触浏览器自动化的人会以为它只是“另一个录制回放工具”。实际上automa是一个能撑起日常工作流的可视化自动化扩展打开页面、点击、提取数据、填表、定时执行全部用拖拽块完成不需要写一行JavaScript就能把重复的网页操作串成一条流水线。相比Selenium这类要装驱动、写代码的框架automa的启动成本和维护成本都低得多尤其适合运营、测试、数据处理岗位的从业者在自己电脑上快速落地。这份资源是一个可直接离线安装的chrome插件包解决了从Chrome应用商店拉取慢、被网络环境卡住的问题装上就能用。2. 安装与工作流初探从zip包到第一个可跑流程2.1 离线安装zip包开发者模式与解压加载automa的官方渠道是Chrome商店但很多公司内网环境无法直接访问或者你拿到的是别人打包好的固定版本想复现一个完全一致的环境这时候本地zip包就派上用场。v1.28.27这个版本号对应的是2023年左右的稳定分支功能完整UI布局和后来的v1.28.x系列一致操作习惯可以平滑迁移。安装过程需要先解压再通过开发者模式加载。不要试图直接拖zip到扩展程序页面Chrome只认解压后的目录或者crx文件——而zip既不是crx也不被直接识别。我在本地从前置操作到跑通第一个流程踩过的几个关键点在下面。# 假设你下载的zip文件在 ~/Downloads 目录下 cd ~/Downloads unzip automa-chrome-v1.28.27.zip -d automa-extension # 解压后会自动生成 automa-extension 目录里面应该至少包含 manifest.json、background.js、icons 目录解压完成后打开Chrome地址栏输入chrome://extensions把右上角的「开发者模式」开关打开然后点「加载已解压的扩展程序」选择刚才解压出来的目录。加载成功后浏览器右上角会出现automa的图标如果图标是灰色的多半是权限没给够进扩展详情页点开「网站访问权限」改成「在所有网站上」或按需配置。注意Chrome版本太老可能导致加载失败报错信息往往是指向manifest.json里的minimum_chrome_version字段。v1.28.27要求Chrome 88以上建议操作系统级Chrome版本保持自动更新。2.2 工作流编辑器的核心概念块、连接线与数据流automa的工作流不是录制回放那种“键盘鼠标记录器”它是一套基于「块」Block的流程编排。常见的块分成四类块类型代表块作用触发器启动、快捷键、定时、Webhook决定流程什么时候开始跑操作打开页面、点击、表单填充、滚动对页面做物理级交互数据提取数据、获取文本、JS执行从页面取出数据或做计算逻辑条件分支、循环、延时控制流程走向与重复次数块与块之间用连线连接上块的输出会成为下块的输入。比如「提取数据」输出一个数组后接一个「循环」块就能逐个处理数组里的每一项。这种数据传递方式是理解automa的核心因为很多新手把automa当成自动化键盘记录器完全忽略了它的数据处理能力——实际它内部每个块都有变量返回字段名都以{{}}包裹例如{{text}}、{{value}}。搭建流程的路径是在面板左侧新建工作流点击顶部的笔状图标进入编辑器右侧块库拖出块到画布从块的右侧圆点拖动连线到下一个块的左侧圆点。连不上线时检查块是否带有输入或输出端口比如「触发器」块没有输入但有输出只能作为首块「循环」块有输入也有输出可放在中间任意位置。2.3 第一个实战流程打开页面并提取标题初学者最适合的第一个流程是做「打开页面 提取页面标题」的最小验证。这个流程能让你把安装、配置、数据流全部跑通并且随时用错误的输出排查问题。首先拖出「浏览器事件」块下的「打开页面」在URL输入框填一个你想测试的站点比如某个公开的新闻门户。然后拖出「数据操作」下的「提取数据」提取规则选择「自定义提取」在选取方式里选「CSS 选择器」写入title返回匹配模式选第一个匹配项。这样提取数据的输出变量{{output}}就是页面标题文本。完整的流程配置可以直接参考如下JSON片段这就是automa工作流导出的标准格式手动创建时在块属性面板里填入对应的参数值即可{ blocks: [ { id: block-1, blockType: browser-event, category: events, name: 打开页面, url: https://example.com, waitForSelector: }, { id: block-2, blockType: extract, category: data, name: 提取标题, selector: title, selectType: css, returnValue: text } ] }这里的url参数决定打开哪个页面waitForSelector可以填一个等待条件例如#main表示页面出现这个选择器后才执行下一步能有效避免页面未加载完就提取数据导致空值。selectType填css或xpath对应两种选择器模式初学者先用css只要网站前端不经过框架动态渲染css选择器通常够用。搭好后点击右上角的「执行」按钮观察画布上块的运行状态块变为蓝色表示正在执行绿色表示成功红色表示报错。如果看到红色打开控制台看错误提示常见的是选择器没匹配到。3. 选择器、数据抓取与循环把自动化推向实际生产3.1 CSS选择器与XPath的选型权衡在工作中我们经常要操作不是那么规范的页面比如老旧的内部系统、嵌套深的表格、跨域iframe里的内容。这时候选对选择器方式比写循环更重要。automa里内置了两类提取器CSS选择器和XPath。CSS依赖class、id、属性优点是简洁、可读性好适合现代前端页面XPath可以沿着文档树路径定位能处理“根据文本内容找元素”“找父节点兄弟节点”这类CSS很难表达的场景。我的一般选型规则是页面class稳定且不重复时优先CSS例如#main、.search-btn遇到文本定位比如根据“确 定”文字找按钮或层级倒推直接用XPath例如//button[contains(text(), 确定)]。别迷信CSS万能automa的反蓝提示会给出预估匹配数量但不会修正你的表达式匹配数量为0时立即切XPath省时间。3.2 批量抓取表格数据与导出CSV实际工作中最常遇到的是抓一个列表页或表格页的全部行数据。这个场景用「提取数据」的「多个匹配项」模式再配合「循环」和「表格」组合可以轻松实现。流程设计如下先拖出「提取数据」块选择「自定义提取」选择器指向tbody tr匹配模式选所有匹配这样提取出来的是一个包含所有行元素的数组。注意automa的提取数据块默认返回的是元素的innerText或指定属性如果想按单元格拆分成结构化数据得在提取设置里把「提取类型」设为表格automa会自动把tr下的td推成一个数组。得到数组后拖一个「循环」块循环源选过去的提取结果在循环体内再用一个「提取数据」块选择器写td:nth-child(1)等列选择器把每一列的文本存到对应变量。循环结束后「导出数据」块可以把结果写成CSV或JSONCSV编码记得选UTF-8否则在Windows上用Excel打开会乱码。这里给出一个典型的工作流JSON结构片段用于理解变量嵌套关系{ blocks: [ { id: extract-rows, blockType: extract, selector: tbody tr, selectType: css, matchType: all, extractType: row }, { id: loop-1, blockType: loop, loopId: row-loop, source: extract-rows }, { id: extract-target, blockType: extract, selector: td:nth-child(1), selectType: css, matchType: first } ] }关于extractTypeautoma的UI在「自定义提取」里有下拉选项text返回文本html返回带标签的结构row返回当前循环行的所有单元格数据。如果只取第1列直接在循环内的提取块写单元格选择器即可。3.3 条件分支与动态列表处理网页交互不是线性的登录后才能看见的元素、下拉菜单里动态加载的选项、按条件显示的内容都需要分支判断。automa里条件分支块的位置很关键我习惯把它放在每次可能失败的操作之后。比如抓取一个需要登录后出现的用户面板先放「提取数据」检测面板内的专属选择器条件分支判断{{output.length}} 0如果大于0说明已登录走正常提取路径如果等于0就转到填表登录的流程块。这种处理比我早期直接一顿操作猛如虎、发现报错再回去补分支要稳得多因为条件分支的「不满足时」出口可以接任意块整个流程是闭环的。循环块的高级用法是「循环列表」外的「循环次数」配合「延时」块可以做限速。比如每抓取一页后延时2~5秒防止被目标站点判定为爬虫。延时参数单位是毫秒2000毫秒等于2秒如果目标站有反爬策略优先把延时调到3000~5000毫秒同时把随机延时开关打开让每次间隔不完全一致这是最朴素的“拟人化”手段。4. 避坑与排查从翻车现场到稳定运行4.1 选择器失效动态类名与页面改版现象第一次跑得很顺第二天再执行提取出来的数据全是空值或者点击块报错找不到元素。 原因网站改版了CSS类名或者页面用框架动态生成节点class里带着哈希、时间戳等随机值。 解决不要死死抱着class或id优先用更稳定的属性选择器比如[data-qaproduct-name]这类属性往往是为测试或埋点预留的没有就用XPath的contains()匹配固定的文本片段不要精确匹配整串class。改版后检查选择器时在页面开发者工具里重新查一次找出不变的父级结构然后基于父级做相对XPath比如//div[data-sectionlist]//span。4.2 定时执行失效后台休眠与浏览器关闭现象设置了每天早上9点执行但人不在电脑旁时工作流根本没有触发。 原因automa是基于浏览器扩展的定时器Chrome对后台标签页有节流策略电脑休眠时定时器完全暂停浏览器整个关闭时扩展也无法运行。 解决定时执行任务需要保证浏览器后台挂着且automa的扩展权限设置为「允许后台运行」。最稳的兜底办法是给电脑设置不休眠或者用Webhook触发器由外部调度器比如本机的计划任务定时调用automa的Webhook地址。不要把定时任务当成绝对可靠的生产级调度器重要项目我一般会用外部cron来打Webhook。4.3 无头模式与窗口大小导致的点击错位现象流程在headless模式下一切正常一开真实浏览器点击目标偏移了几像素或者反过来。 原因浏览器窗口尺寸不同页面响应式布局改变元素位置无头模式默认窗口较窄触发了不同断点样式。 解决在「打开页面」块里固定窗口大小常见做法是宽1920、高1080然后在实施时保持渲染环境一致。如果做点击优先用「元素点击」而非「坐标点击」坐标点击对窗口尺寸极其敏感跨设备执行基本必翻车。坐标点击只用于那些无法被选择器命中的canvas元素慎用。4.4 导出CSV在Excel里乱码现象automa导出CSV后用Excel打开中文全是乱码记事本打开正常。 原因CSV文件内置的字符集标记被去掉Excel默认按本地代码页解析UTF-8编码的CSV没有BOM头就会乱。 解决在「导出数据」设置里指定编码为UTF-8 with BOM或者导出后用VS Code、Notepad转存带BOM的UTF-8。如果工作流是交付给同事用强烈建议导出JSON格式JSON里的中文不会遇到这种玄学编码问题。4.5 工作流导入失败版本差异与依赖缺失现象从网上下载一个别人分享的工作流JSON导入时报「格式无效」或某个块的参数为空。 原因automa不同大版本的块类型ID不一致比如v1.28.x和v1.32.x对「条件分支」的取值逻辑可能不同分享者可能用到了自定义JS块引用了本地外部脚本你的环境没有这个脚本。 解决导入后逐块核对块类型是否存在先找一个最小的官方示例工作流确认导入本身没问题再把别人的JSON分块粘贴进去。如果别人的流程用到了「打开系统应用」这类和操作系统强相关的块直接放弃换一个相近的解决方案。5. 进阶技巧把automa当成内部自动化中枢5.1 用HTTP请求块对接内部API如果你不止想让automa操作页面还想让它调用你公司内部某套系统的API用它内置的「HTTP请求」块就够。这个块支持GET/POST/PUT/DELETE可以自定义Header和JSON Body。我常用的场景是从页面提取数据后把数据POST到内部的数据上报接口省去了手动整理表格的时间。配置时注意两件事一是跨域请求要在扩展权限里允许「访问所有网站」二是接口返回结果会被存到{{response}}变量里后续可以拼接到下一个请求的Body中。5.2 与Python脚本联动通过Webhook触发比纯前端自动化更舒服的节奏是automa负责页面交互和数据采集我来负责更复杂的逻辑处理两者通过本地Webhook对接。我用一个本地Python脚本监听http://127.0.0.1:8080/triggerautoma在工作流末尾发一个HTTP请求到该地址Python脚本收到后读取临时生成的JSON文件做数据分析、入库或生成报表。为了稳定联动我固定了一套约定automa每次执行完把原始数据写到./output/data.json同时请求Webhook时带上一个任务名称字段Python根据任务名分发处理。这个模式跑通以后我基本不再为“如何爬取页面”“如何点击按钮”分心只把有限精力放在数据清洗和业务判断上。5.3 保留调试现场把错误截图保存下来遇到流程跑挂但日志又看不明白时我会在每个关键节点后接一个「截图」块把截图文件存到本地磁盘的固定目录。出错后直接翻文件夹里的截图看当时页面真实状态比盯着抽象报错文本快得多。这个习惯是从一次凌晨跑数据抓取翻车后养成的——当时报错提示“找不到元素”但我不知道页面是加载慢还是结构改了最后靠截图发现是弹窗挡住了按钮。从那以后我每次新搭工作流都强制走一遍“加截图-跑测试-删截图-上线”的路径并把截图块保留在工作流里但设为「仅出错时执行」。automa的逻辑块可以做这种条件截图省心不少。希望这个离线包能让你在自动化这条路上少踩几个坑真正把重复工作丢给浏览器自己跑。本文还有配套的精品资源点击获取