效率提升利器:Automa插件的实用指南

news2024/10/6 14:24:58

Automa是一个chrome扩展,通过拖拽0代码实现工作流,模拟网页的各种点击、表单填写等操作,使用时点击插件脚本一键执行,或者设置定时执行,从而简化我们的工作。


功能介绍

官方文档地址:Getting started | Automa Docs。

界面

新建一个插件,界面如上图。

  • 左侧面版有一些列组件可供选择
  • 右侧画布区域可以放置组件,再把组件用线连起来。
  • 点击组件,组件上方出现编辑、删除等按钮,点击编辑,左侧弹出组件配置区域。
  • 右上方工具栏,其中table可以创建数据表,globalData可以编辑全局数据
  • 设置里可以选择中文

常用组件

插件提供了非常多的组件。有界面相关的,如点击元素、获取元素属性、获取元素文本、悬停元素、按键等等;有逻辑相关的,如条件、判断元素存在、循环等;有浏览器相关的,如激活当前活动标签页、新建标签页、前进、返回、刷新、截屏;等等。

这里介绍几个主要的组件:

触发器

一个脚本以触发器开始,新建脚本默认会有一个触发器。编辑触发器,有编辑触发器和参数两个配置。其中编辑触发器,默认手动,可以换成下图的多种触发方式,可以按时间定时执行,也可以设置快捷键等。

可以添加若干参数,当配置了参数时,点击脚本不会立刻执行,而是弹窗填写参数,再点击运行。参数类型主要是input和checkbox,很遗憾没有radio。

活动标签页

激活当前活动标签页。我们执行脚本需要有一个承接页面。

新建标签页

新打开一个标签页,可以编辑URL地址。

点击元素

用的最多的组件,点击页面某个元素。在编辑界面可以选择元素。

表单

用的第二多的组件,选中某个表单元素,输入指定的值。

表单和点击元素配合,就是我们绝大部分用到的操作了。

延迟

这个组件也经常用到,比如我打开一个页面,要延迟一会再执行操作,否则可能会报错元素不存在,脚本就中断了。再比如我提交了一个表单,要等一会页面刷新再执行后续操作。

悬停元素

有的地方操作是hover触发的,就需要模拟鼠标悬停。

截屏

执行完某一步后,截屏保存下状态,后续可以在电脑的截图文件夹找到。

JavaScript代码

可以直接在页面写一段JS代码来执行,可以定制实现一些复杂的步骤。

选择器

几个UI组件都有选择器按钮,点击可以在页面看到选择器遮罩,鼠标放到元素上会显示跟控制台一样的元素高亮效果以及元素属性提示。点击会出现在选择器配置中。

选择器包括class和XPath两种模式,一般class就行。

有时候组件点了没反应,可以直接点击插件按钮,同样有一个选择器按钮,可以选中元素获取样式,然后复制粘贴到组件配置。如果还是没反应,看看上面的小眼睛是否打开了。

变量

这里要重点说一下。配置项里除了写死的值,也可以使用变量。Automa有几种变量类型,globalData、variables、table、loopData。

  • loopData后面循环再说;
  • table,类似一个本地的临时数据库,可以在代码中存入数据,最后用导出组件导出数据。暂时没怎么研究。
  • globalData,全局预设一些值,右上角工具栏也有按钮方便修改。我是把脚本的配置项都写到这里,方便调整参数运行。部分配置可以读取globalData,比如打开标签页,url配置可以通过{{globalData.xxx}}拼入变量。但是我在表单输入框这样写不行,variables可以。
  • variables,内存中的变量,可以通过设置变量,后面组件读取变量配置。比如表单文本域输入{{variables.xxx}}。还不行的话,前面加上!!,变成!!{{variables.xxx}}
  • 触发器的参数也是写到variables里。

方法

Javascript代码模块中,除了常规的js代码,还支持了几个特定的方法:

automaNextBlock(data, insert)

结束当前js代码,继续执行下一个模块。

automaRefData(keyword, path?)

可以获取当前的table、variables、globalData、loopData。

console.log(automaRefData('globalData'))
console.log(automaRefData('variables'))
console.log(automaRefData('variables', 'xxx'))
console.log(automaRefData('table', '0'))
console.log(automaRefData('loopData', 'loopId'))
automaSetVariable(name, value)

写入值到variables。

前面globalData的数据无法放到表单,我就在最前面放了个Javascript代码模块,读取globalData数据,再写到variables,方便统一在全局写配置。

还有前面说到触发器的参数没有radio,我想做单选就用checkbox代替了,但是variable得到的是一系列key,我就在前面放了个Javascript代码模块,处理了一下。

automaFetch(type, resource)
automaFetch('json', { url: 'https://api.example.com'}).then((result) => {
	console.log(result);
})

automaFetch('json', {
	url: 'https://api.example.com',
	method: 'POST',
	body: JSON.stringify({
		title: 'Hello world',
	}),
})
autoResetTimeout()

没用过,重置执行超时时间。

循环

循环有循环数据和循环元素两个方式。在表单配置项,还有代码中,可以通过loopData拿到当前循环数据或元素。loopId是循环组件配置的loopId,循环结束也要放一个循环结束组件,也要填相同的loopId。

有时候是{{loopData.loopId.data}},有时候是{{loopData@loopId}},要注意。

循环数据

循环数据组件可以循环table、variables等,不支持globalData。还可以自定义数据,会弹出一个json输入框,不过还是放在globalData方便管理一些,再通过js写到variables。

循环元素

有时候我们要在页面上动态从一个表格或者列表读取元素,再获取对应数据执行后续操作。此时,可以用循环元素组件,然后选择css,会得到具有相同css的元素列表。后面再选择元素进行操作,就可以在css中用loopData做前缀, 如{{loopData@versions}} .ant-radio-input


Demo实现

下面我们实现一个小程序后台批量加白名单功能。

给几个小程序批量加域名白名单,每个小程序要加几十个,这里用脚本就可以很轻松实现。

如上图,登录后,在开发设置找到服务器域名白名单。添加一次的操作是,点击添加 -> 输入域名 -> 点击确定。然后几十个域名需要重复上述操作。

我们新建一个工作流脚本来实现上述操作。登录并进入配置页面,点击脚本即可。

首先点击全局数据,在json里配一个domain_list, 维护一个域名列表。

然后触发器 -> 活动标签页 -> Javascript代码。这里代码中将globalData.domain_list写入到variables。

const domain_list = automaRefData('globalData').domain_list

automaSetVariable('domain_list', domain_list)

console.log(domain_list)
console.log(automaRefData('variables'))

automaNextBlock()

刚刚打开标签页,接下来稍作延迟,等待添加域名白名单区域渲染。

接下来是重点,放入循环数据组件,配置选择变量,变量名称domain_list。循环id随便定一个,这里就叫domain吧。再在最后放一个循环断点组件,填入domain。

每次循环我们要执行的操作放在中间。依次是点击元素(添加按钮)、表单(输入域名!!{{loopData.domain.data}})、延迟、点击元素(确定按钮)、延迟。

这样,当我们在当前页面点击执行脚本,脚本就会按照我们在全局变量写的域名列表,依次添加。如果有的域名已经在域名列表,或者配置错误,导致添加失败,界面上没有其他元素展示,上述操作不会影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1233362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

长期使用老旧、劣质、不合格电源线的危害有多大?

电源线作为电力、信息传输的重要工具,如今已经成为人类生活生产必不可少的产品之一,电气装备、电器照明、通信、家装、工业生产等多个行业,电源线都发挥着重要的载体作用。由于市场上电源线产品品类繁多,价格、品质参差不齐&#…

深度态势感知的含义

深度态势感知的含义 当年德国对苏联发动的侵略战争,本来是两个大国内讧的结果。这次入侵完全是希特勒和最高统帅部几个人就决定了的。他们是怎样对待关于苏联的情报呢?英国人写的《苏德战争》中有这样描述:"很多真实的情报对元首来说则毫…

六要素超声波微气象仪一款气象监测设备

WX-WQX6 随着科技的发展,人们对天气的预测和掌控能力越来越强。在这个领域,六要素超声波微气象仪以其精准、实时的气象监测能力,赢得了众多关注。这款仪器不仅可以实时监测温度、湿度、风速、风向、气压和雨量六个气象要素,还可以…

OFI libfabric原理及应用解析

Agenda 目录/议题 编译通信软件硬件和软件带来的挑战为什么需要libfabriclibfabric架构API分组socket应用 VS libfabric应用区别GPU数据传输示例 编译通信软件 可靠面向连接的TCP和无连接的数据报UDP协议高性能计算HPC或人工智能AI 软硬件复杂性带来的挑战 上千个节点的集群, …

SpringSecurity+JWT权限认证

SpringSecurity默认的是采用Session来判断请求的用户是否登录的,但是不方便分布式的扩展 虽然SpringSecurity也支持采用SpringSession来管理分布式下的用户状态,不过现在分布式的还是无状态的Jwt比较主流 一、创建SpringBoot的项目 spring-boot-starte…

buildAdmin 后端控制器的代码分析

buildAdmin的代码生成&#xff0c;很像是 fastadmin 的生成模式&#xff0c;当我们利用数据库生成了一个控制器的时候&#xff0c;我们可以看到&#xff0c; 它的生成代码很简洁 <?phpnamespace app\admin\controller\askanswer;use app\common\controller\Backend;/*** 回…

在Spring Boot中使用Thymeleaf开发Web页面

引言&#xff1a; 为啥写这篇文章呢&#xff1f;我明明就没怎么用过这个Thymeleaf进行web开发&#xff0c;用JSP也行&#xff0c;三剑客也行&#xff0c;或者Vue&#xff0c;React&#xff0c;PHP等等&#xff0c;不好吗&#xff1f; 那我为啥写这篇博客呢&#xff1f;这个写了…

1445 雉兔同笼

Tint(input()) for i in range(T):s input().split()head int(s[0])foot int(s[1])rabbitfoot/2-headchicken2*head-foot/2if rabbit>0 and chicken>0 and rabbit.is_integer():print(int(chicken),int(rabbit))else:print(-1)

Playcanvas后处理-辉光bloom

&#xff08;一&#xff09;Bloom介绍 Bloom&#xff08;辉光、光晕、泛光&#xff09;是一种常见的摄像机后处理&#xff08;PostProcessing&#xff09;效果&#xff0c;用于再现真实世界相机的成像伪影。这种效果会产生从图像中明亮区域边界延伸的光条纹&#xff08;或羽毛…

亚马逊车灯外贸出口CE认证标准办理解析

车灯是车辆夜间行驶在道路照明的工具&#xff0c;也是发出各种车辆行驶信号的提示工具。车灯一般分为前照灯、尾灯、转向灯等。车灯出口欧盟需要办理CE认证。 CE认证是欧盟对进入欧洲市场的产品强制性的认证标志&#xff0c;是指符合欧盟安全、健康、环境保护等标准和要求的产…

美容仪器经营小程序商城的作用如何

美容仪器可以包含剃须刀、微针仪、微晶笔等&#xff0c;除了美容美业机构需要外&#xff0c;在家庭中也有不小的需求&#xff0c;对产品经营商家来说除了满足客户线下订购的需求外&#xff0c;还需要线上拓展更广的客群及多场景客户在线消费。 入驻第三方平台是商家们首先考虑…

mricorn 手动勾画ROI并保存为模版的方法步骤

mricorn软件手动勾画ROI&#xff1a; 这里拿一个做了切除手术的癫痫病人举例子&#xff0c;我们需要把切除区域勾画出来并保存成切除的模版。 1、将图像导入到mricorn中 2、逐层勾画ROI并填充 比较方便的是从切除区域的起始层进行勾画&#xff0c;这里为了方便展示只勾画中间…

【操作系统】文件系统之文件共享与文件保护

文章目录 文件共享硬链接软链接 文件保护口令保护加密保护访问控制 文件共享 为了实现文件的共享&#xff0c;引入了“计数器”字段&#xff0c;当一个文件每被一个用户所共享&#xff0c;那么计数器就加一。如果一个用户删除文件&#xff0c;计数器相应的减一。如果计数器为0…

ITIL® 4 Foundation​,即将开课~想了解点击查看

ITIL 4 Foundation 即将开课~ 想报名的必须提前预约啦 &#x1f447;&#x1f447;&#x1f447; 2 0 23 年 培训地点&#xff1a; 远程直播&#xff1a;线上平台学习 开课时间&#xff1a; 周末班&#xff1a;11月25日、26日&#xff1b; 什么是ITIL&#xff1f; 信息技…

数据仓库架构之详解Kappa和Lambda

目录 一、前言 二、架构详解 1 Lambda 架构 1.1 Lambda 架构组成 1.2 Lambda 特点 1.3 Lambda 架构的优点 1.4 Lambda 架构的不足 2 Kappa 架构 2.1 Kappa 架构的核心组件 2.2 Kappa 架构优点 2.3 Kappa 架构的注意事项 三、区别对比 四、选择时考虑因素 一、前言 …

鸿蒙原生应用/元服务开发-AGC分发如何配置版本信息(上)

1.配置HarmonyOS应用的“发布国家或地区”。 2.设置是否为开放式测试版本。 注意&#xff1a;HarmonyOS应用开放式测试当前仅支持手机、平板、智能手表。如开发者想发布为开放式测试版本&#xff0c;选择“是”。正式发布的版本请选择“否”。 3.在“软件版本”下点击“软件包…

商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法

一、介绍 商品管理与推荐系统。本系统使用Python作为主要开发语言&#xff0c;前端采用HTML、CSS、BootStrap等技术搭建显示界面&#xff0c;后端采用Django框架处理用户的请求响应。 创新点&#xff1a;使用协同过滤算法&#xff0c;以用户对商品的评分作为依据&#xff0c;在…

5款免费BI数据可视化工具,2023年最新精选推荐!

BI可视化工具顾名思义是进行数据分析和可视化的软件&#xff0c;旨在将数据以表格、图表、仪表盘等形式展示出来&#xff0c;让用户能够更加直观了解其业务状况、发现问题&#xff0c;并在必要时进行决策。   市面上BI数据可视化工具很多&#xff0c;目前比较火的像国外的Tabl…

【原创】为MybatisPlus增加一个逻辑删除插件,让XML中的SQL也能自动增加逻辑删除功能

前言 看到这个标题有人就要说了&#xff0c;D哥啊&#xff0c;MybatisPlus不是本来就有逻辑删除的配置吗&#xff0c;比如TableLogic注解&#xff0c;配置文件里也能添加如下配置设置逻辑删除。 mybatis-plus:mapper-locations: classpath*:mapper/*.xmlconfiguration:mapUnd…

《活着》思维导图

今天给大家分享的这部作品的题目叫“活着”&#xff0c;作为一个词语&#xff0c;“活着”在我们中国的语言里充满了力量&#xff0c;它的力量不是来自于喊叫&#xff0c;也不是来自于进攻&#xff0c;而是忍受&#xff0c;去忍受生命赋予我们的责任&#xff0c;去忍受现实给予…