好用的浏览器自动化扩展-automa
好用的浏览器自动化扩展-automa
automa是一款基于浏览器的任务流编排工具,就是处理一些浏览器网页相关的自动化任务
当然也是轻量级的,浏览器扩展所能处理的毕竟有限,如果有比较重量级任务建议使用类似 RPA
或者 DolphinScheduler 这一类的调度/任务编排工具,我说的比较笼统 他们都有各自的侧重点儿~
本次呢,仅就我最近接到的一活儿说起:
我最近接到的一个任务是将后台(管理端)查询出来的音频文件(wav) 查询出来后并下载,同时要支持翻页,最好是能支持并发下载。
一开始我们经过调试想直接拿到页面session(登录信息)后直接调用查询分页接口获取数据 => 再解析数据中的文件链接直接用程序下载,想必这样便捷高效,但是呢,问题就出现了~
一是由于内容涉及到隐私,所以后台查询出来的数据都是 RSA 加密的的 json 字符串,字符串需要经过前端 加载的 RSA 私钥解密后才可给到页面渲染,同时解密方法似乎也经过个性化处理 这...很麻烦;还有就是音频文件地址似乎也是经过了些许处理并经过用户点击过出现弹框播放时才会有音频播放(才有地址),还有一个现实情况是时间紧迫 需要一天左右的时间给出解决方案~
任务一开始,同事有研究过用纯程序去做,但是迫于现实原因 纯程序调接口的方式直接pass掉了
那么落到我手里了,一开始本想到的是 RPA ,东西花了半拉天写好了(主要是好久没用过RPA了电脑也没预装) ,最终只作为备选方案搁置一边了 哈哈哈
第二天我换了种方式,就是automa (用程序去点击去下载);那么,我就粗糙的讲一下这东西怎么用哈~
Ⅰ 如何使用
01.先从
chrome应用商店(需要梯子)或者第三方插件网站(不需要梯子)下载并安装automa插件 ,以及安装这里略去哈02.安装后第一件事儿就是先将
automa插件的语言改为中文(”文盲“必备哈)( •̀ ω •́ )✧![]()
03.然后必然是新建一个工作流程(工程);一定要注意,这个工程一定要含有这必要的三要素,分别是:
触发器、新建活动页或新建标签页(二选一)、工作流状态![]()
04.然后所有具体的逻辑节点均在
触发器及工作流状态之间,这里给一个例子![]()
注意:编排好的工作流一定要用 连接线 连起来,如果没有触发器是无法用执行的!
05.工作流执行
编辑节点可点右上角
调试模式执行 或执行即可~![]()
如果开发完毕需要执行,可按图所示
执行即可![]()
执行完毕
automa会给出成功或失败的通知,这是我执行失败后的日志,浏览器通知 点进去:![]()
Ⅱ 关于官方文档
为什么这个要单独拎出来说呢,因为这很重要!!!
我就因为一个问题始终找不到答案(网上能给到的直接资料也很少)而耽误了不少时间,希望后来者不要因此踏坑~
我们通常能找到的文档一般是这个网站:https://automa.wiki/workflow/variables,
这里需要说的是:这个中文网站写的十分笼统,而且也不是最新的,我就踩过坑。。。。
所以我强烈建议使用官方文档https://docs.extension.automa.site/guide/quick-start.html#recording-actions
,建议将这个官方文档的网站放入收藏夹~
Ⅲ 如何调试独立模块
如果独立模块独立执行 一般无需连接到整个流程中,如果调试单个模块只需要点击模块上的 “运行” 按钮即可

Ⅳ 如何定义 automa 运行时变量以及获取变量
针对于预设全局参数我就不说了,官方文档有实例,这里我先告诉你如何在 “JavaScript 代码” 模块中如何设置一个及获取一个变量

如图,定义的 _first_key 这个变量是能够在其他模块中获取到 且 可以修改的!
这个也很重要,这种变量在大多数工作流中都会用到!!!
Ⅴ 组件配置参数引用

这个也是常用的,尤其是在循环及组件配置中,这也很重要,automa变量 可以上图这种方式被引用,如果是在 JavaScript 模块中则是:
// 获取定义的变量
let _first_key = automaRefData('variables', '_first_key') ;
组件引用的参数 中的 variables@ 前缀是固定的,javascript 中获取也是固定的:variables !
Ⅵ 插件常见问题
一是 浏览器对插件的兼容问题
尤其是对于chrome浏览器,如果您碰到了,尤其是安装不了时,建议使用 edge ,这货
似乎对chrome插件兼容性更更好一些,比如你用低版本的 automa 的插件,edge 似乎都能安装及使用!
二是 出现的兼容问题可能是权限
此类问题 建议在插件配置时将所有权限全部勾上


最后
以上仅对 Automa 插件使用的浅见,只是对目前碰到的问题做一些排障,如有好的建议及使用技巧请留言~
好用的浏览器自动化扩展-automa的更多相关文章
- splinter python浏览器自动化操作,模拟浏览器的行为
Splinter可以非常棒的模拟浏览器的行为,Splinter提供了丰富的API,可以获取页面的信息判断当前的行为所产生的结果 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有 ...
- Python实现浏览器自动化操作
Python实现浏览器自动化操作 (2012-08-02 17:35:43) 转载▼ 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是 ...
- [转载]Python实现浏览器自动化操作
原文地址:Python实现浏览器自动化操作作者:rayment 最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有不少介绍,例如使用pamie,但是只是支持IE,而且项目也较久没 ...
- FireFox 浏览器插件/扩展开发学习
2014-11-08 内容存档在evernote,笔记名"FireFox 浏览器插件/扩展开发学习"
- Python—selenium模块(浏览器自动化工具)
selenium可以用来完成浏览器自动化相关的操作,写一些代码制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件 安装方法: pip install selen ...
- 浏览器自动化的一些体会9 访问angular页面的一个问题
发现浏览器自动化有一个重要方面没有提及,即所谓的无页面浏览器,不过最近没有需求,不想尝试,先记上一笔,以后有需求时,可以有个思路. 大约一两个月前(现在比较懒散,时间不知不觉过去,连今天是几号有时候都 ...
- 浏览器自动化的一些体会2 webBrowser控件之ajax
上个帖子简要讨论了浏览器自动化的几种方法.现在讨论webBrowser控件使用中的一些问题.基本的操作就不详细说了,随便网上找个帖子或找本书都有介绍的.这里只写点网上似乎少有人总结过的内容,以及自己的 ...
- 浏览器自动化工具-Selenium
Table of Contents 1. 什么是Selenium 2. 简单的例子 3. PS 什么是Selenium Selenium可以自动化操作浏览器,利用Selenium可以模拟用户操作,因此 ...
- 使用Selenium进行浏览器自动化操作记录
一位经验丰富的同事交给了我一个任务:将20个IP地址添加到公司系统对应的目录下. 这个任务之前做过,并且数量是远不止20个,当时就学习Selenium并且使用Python3.6写了一个脚本用来自动化地 ...
- Java+selenium+Firefox/ IE/ Chrome主流浏览器自动化环境搭建
一.java+selenium+firefox 1.环境准备:JDK1.8 2.安装firefox浏览器v59 3.下载驱动:https://github.com/mozilla/geckodrive ...
随机推荐
- vue 前端选择弹窗取值完整实例[经典]
<!-- 班次信息 --> <el-row> <el-col :span="24"> <el-form-item label=" ...
- Spring Cloud Gateway网关
一.Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求由(路由)转发到对应的微服务 网关的执行过程:当一个请求到达网关,网关利用断言,查看该请求是 ...
- rider 跑不动了,快找车吧=vscode
我的笔记本跑rdier有点吃紧了,T440s; rider的慢速是我有点难以接受了,在开发效率和性能方面综合考虑,我考虑换上vscode了. 做.net core web开发完全够用了,也不用各种等待 ...
- Next App Router 模式下,如何同步服务端 Redux 初始状态?
大家的阅读是我发帖的动力,本文首发于我的博客:deerblog.gu-nami.com/,欢迎大家来玩,转载请注明出处喵. 前言 Next.js 是一个广受欢迎的 React 服务端渲染(Server ...
- IDEA问题之“MyBatis插件安装【MyBatisX】”
一.场景 在SSM框架中带有XML文件的查找很是麻烦,特别是在ID命名有大量重复时 而这个插件就可以,让你直接从Service实现类中直接跳到XML中 还有些其他功能,可以探索探索 一.配置步骤 1. ...
- 从 UEFI 启动到双系统——记一次双系统 Linux 分区迁移
前言 我的台式电脑上,装了 Windows 和 Linux 双系统. 我有两块 1 TB 硬盘,就把它们叫作硬盘 0 和硬盘 1 吧.最开始的时候,硬盘 0 上装了 Windows 系统,而我的数据分 ...
- golang map 和 interface 的一些记录
golang的map读取是不需要判断key是否存在的,不存在的key会返回默认值. 如果map的value是interface,那么interface是需要先进行类型转换的,非要求类型的转换,得到结果 ...
- SVM回归
SVM回归任务是限制间隔违规情况下,尽量防止更多的样本在"街道"上."街道"的宽度由超参数\(\epsilon\)控制 在随机生成的线性数据上,两个线性SVM回 ...
- demo阐述js中let和var 的不同
当我们使用 var 和 let 来声明变量时,它们在作用域和变量提升方面的差异会产生一些不同的结果.下面是一个示例来说明这些差异. // 使用 var 声明变量 function varExample ...
- 弹性公网IP的五大核心优势解析
在云服务架构中,弹性公网IP(EIP)已成为现代企业网络部署的核心组件.与传统固定IP相比,它通过独特的技术机制解决了动态环境下的公网访问难题.以下五大核心优势决定了其不可替代的价值: 一.动态绑定的 ...





