当前位置: 首页 > news >正文

MacApp自动化测试之Automator初体验

今天我们继续讲Automator的使用。

初体验

启动Automator程序,选择【工作流程】类型。从资源库区域依次将获取指定的URL、从网页中获得文本、新建文本文件三个操作拖进工作流创建区域。

然后修改内容,将获取指定的URL操作中的URL替换成https://www.cnblogs.com/tynam;将从网页中获得文本操作下内容修改为获得纯文本来自网页;将新建文本文件操作中【文件格式】修改成纯文本(txt,需要时可转换),存储为修改成test.txt,位置设置成桌面并勾选后面的替换现有文件。

此条工作流的含义是访问网页https://www.cnblogs.com/tynam,然后提取该网页的所有文本内容,并将提取的文本内容保存到桌面test.txt文件中。

然后点击运行按钮执行工作流中的操作,运行后截图如8-3所示。

图片

图8-3 Automator初体验截图

从输出的日志可以看到,工作流程中的三个步骤全部执行完成。桌面也生成了一个test.txt文件,文件内容截图如8-4所示。

图片

图8-4 test.txt文件内容截图

最后将该工作流保存,下次打开后可继续编辑使用。

八大文稿类型

启动Automator程序后,第一步操作就是选择文稿类型,文稿类型一共有工作流程、应用程序、快速制作、打印插件、文件夹操作、日历提醒、图像捕捉插件、听写命令八种类型。每一种文稿类型代表着一种程序格式,不同的格式应用方式也不相同。

PART 1

工作流程

在Automator应用程序内运行的工作流程,该类型文稿运行时只能在Automator中运行。8.3.2初体验一节中使用的就是工作流程类型的文稿。

例如将8.3.2初体验一节中创建的工作流程保存为“获取网页文本.workflow”, 工作流程类型的文稿后缀为workflow,保存的文稿截图如图8-5所示。

图片

图8-5 获取网页文本.workflow截图

双击打开获取网页文本.workflow文稿,进入的是Automator编辑界面。

PART 2

应用程序

直接点击或者将文件/文件夹拖放到上面便可开始运行的单独工作流程。应用程序类型文稿非常适用,是一个独立的工作流,也可以认为是一个独立的应用程序,直接点击保存的文稿即可运行。

示例:将PDF转换成图片。启动Automator程序并新建一个应用程序类型的文稿,然后依次执行如下操作:

1.工作流中添加一个请求确认操作,在第一个输入框中输入内容“请选择一个PDF文件”。请求确认操作会弹出一个提示窗口,旨在提示用户某些内容。

2.工作流中添加一个请求访达项目操作,【开始于】设置为选择PDF文件使用频率最高的一个路径,例如选择test目录,其它内容保持默认。请求访达项目操作会打开一个窗口,用户在窗口内可选择文件。

3.工作流中添加一个将PDF页面渲染成图像操作,内容均保持默认即可。将PDF页面渲染成图像操作会将PDF文件按照页渲染成图片,每页一个图片。

4.工作流中添加一个移动访达项目操作,【至】设置为生成的图片保存路径,例如选择test目录,其它内容保持默认。移动访达项目操作是将生成的文件移动到制定的路径下。

5.工作流中添加一个显示访达项目操作。显示访达项目操作用于直接进入文件生成的目录,显示生成的文件。

操作添加完成后,工作流截图如图8-6所示。

图片

图8-6 PDF转图片工作流

完成操作添加后,在Automator程序中先试运行,如果日志显示全部通过则将该工作流保存成“PDF转图像.app”。

6.双击PDF转图像.app运行工作流,首先弹出了【请选择一个PDF文件】提示框;点击【好】按钮后打开了选择文件窗口,选择“test.pdf”文件;接着在test目录下生成了许多JPEG图片。如图8-7所示。

图片

图8-7 PDF转图像

PART 3

快速操作

快速操作是可添加到访达、触控栏和“服务”菜单的工作流程。可以在“系统偏好设置”中管理快速操作。

示例:将图片格式转换为JPEG。启动Automator程序并新建一个快速操作类型的文稿,然后依次执行如下操作:

1.快速操作类型文稿新建后会有一个默认输入文件步骤。如果没有输入内容则可设置【工作流程收到当前】为没有输入。

【工作流程收到当前】用作工作流程输入的数据类型,由于本次是对图像的转换,因此选择图像文件;【位于】设置为访达。其它内容保持默认。

2.工作流中添加一个拷贝访达项目操作。该操作有两种添加方式,第一种是手动添加,第二种是在添加更改图像类型操作时会提示“您要增加一个“拷贝访达项目”操作以便更改副本且保留原文件吗?”,点击【添加】按钮也可实现添加。该操作在改变后修改图片类型后会保留原文件。【至】修改为test目录。

3.工作流中添加一个更改图像类型操作。【至类型】修改为JPEG。

操作添加完成后,工作流截图如图8-8所示。

图片

图8-8 图片转JPEG类型工作流

完成操作添加后将该工作流保存成“图像格式转换为JPEG.workflow”。默认保存在 /Users/[用户名]/Library/Services/目录下。

4.依次进入【系统偏好设置】>>【键盘】>>【快捷键】>>【服务】,在图片分类下找到图像格式转换为JPEG,并设置快捷键。例如设置为Ctrl+Shift+J。如图8-9所示。

图片

图8-9 图片转JPEG类型设置快捷键

5.选中一个图片,然后在键盘按下Ctrl+Shift+J。会在拷贝访达项目操作中设置的【至】路径下(步骤2中的设置)生成一个xxxx_副本.jpg文件。例如选中test目录下的adb工作原理.png图片,然后按下Ctrl+Shift+J,在test目录下生成了一个adb工作原理_副本.png,如图8-10所示。

图片

图8-10 转换为JPEG类型图片

PART 4

打印插件

可在“打印”对话框中使用的工作流程。此工作流在打印对话框中任何可以打印的地方启用,例如使用它将Excel文件转换为PDF。

示例:PDF加水印。启动Automator程序并新建一个打印插件类型的文稿,然后依次执行如下操作:

1.工作流中添加一个给PDF文稿添加水印操作。水印列表中添加一张图片;【层】选择在PDF之下绘制水印;【偏移】中调节x、y坐标,将水印放在一个合适的位置。最后设置【缩放】、【角度】、【不透明度】,调整水印。

2.工作流中添加一个移动访达项目操作。【至】设置为test目录。操作运行后会将添加水印的PDF文稿重新保存到test目录下。

操作添加完成后,工作流截图如图8-11所示。

图片

图8-11 添加水印工作流

完成操作添加后将该工作流保存成“PDF添加水印.workflow”, 默认保存在 /Users/[用户名]/Library/PDF Services/目录下。保存后在所有打印的地方都可使用。

6.打开一个PDF文件,依次选择【文件】>>【打印】。在打印设置界面的最下方下拉框中选择创建的PDF添加水印,如图8-12所示。

图片

图8-12 选择PDF添加水印操作

7.选择PDF添加水印下拉选项后便会开始生成带有水印的PDF文稿,并保存在test目录下。打开生成的PDF,每页都添加了水印。如图8-13所示。

图片

图8-13 带水印的PDF文稿

PART 5

文件夹操作

附加到“访达”中文件夹的工作流程。项目添加到文件夹后,工作流程便会运行并且文件会用作工作流程的输入。例如根据文件扩展名将文件划分到不同的文件类型下。

示例:对某个文件下所有文件实现重命名。启动Automator程序并新建一个文件夹操作类型的文稿,然后依次执行如下操作:

1.文件夹操作类型文稿新建后会有一个【文件夹操作接受添加到这个位置的文件和文件夹】输入框,该输入框选择需要操作的文件夹,例如笔者选择test文件夹。

2.工作流中添加一个给访达项目重新命名操作。第一个输入框设置为连续编号;【将数字添加到】设置为现有项目名称;【添加数字】设置为名称之后;【开始数字为】设置为1;【分割符为】设置为下划线;编号数字长度设置为3。在该操作下面可看到命名示例“例如:项目名称_001.xxx”。

3.工作流中添加一个移动访达项目操作。【至】选择test2目录。

操作添加完成后,工作流截图如图8-14所示。

图片

图8-14 文件夹下项目重命名工作

完成操作添加后将该工作流保存成“文件夹下项目重命名.workflow”, 默认保存在 /Users/[用户名]/Library/Workflows/Applications/Folder Actions/目录下。

4.将文件拖到test文件夹下,在test2文件夹下会对所有的文件根据命名规则重新命名。例如将草.jpeg、海滩.jpg、马路.jpeg、烟花.jpeg、鹰.jpeg拖进test文件夹下,在test2文件下生成了草_003.jpeg、海滩_004.jpg、马路_001.jpeg、烟花_005.jpeg、鹰_002.jpeg。如图9-12所示。

图片

图8-15 文件夹下项目重命名

PART 6

日历提醒

日历日程发生时,便会运行的工作流程。简单地理解就是一个定时任务,在特定时间执行特点操作。因为创建的工作流会作为日历事件展示在日历程序中,因此可以像使用普通日历事件一样设置重复和通知。

示例:定时备份文件。启动Automator程序并新建一个日历提醒类型的文稿,然后依次执行如下操作:

1.工作流中添加一个获得指定的访达项目操作。在列表中添加一个文件夹,例如添加test文件夹。

2.工作流中添加一个获得文件夹内容操作。

3.工作流中添加一个拷贝访达项目操作。【至】设置为test2文件夹。

操作添加完成后,工作流截图如图8-16所示。

图片

图8-16 定时备份文件工作流

图片

图8-17 日历提示信息

完成操作添加后将该工作流保存成“定时备份文件.app”, 默认保存在 /Users/[用户名]/Library/Workflows/Applications/Calendar目录下。

保存成功后日历会立即弹出一个提醒信息,如图8-17所示。

2.打开日历程序,在保存“定时备份文件.app”任务的当天,会出现一条定时备份文件的任务。双击该任务可对任务进行设置,例如设置开始时间、结束时间、重复等。【重复】默认是无,在此设置为每天,设置后日历的每天都会显示定时备份文件任务。如图8-18所示。

图片

图8-18 重复选项设置为每天

当当前时间到达设置的开始时间后,任务便会执行。test文件夹下的所有文件便会备份一份到test2文件夹下,执行结果如图8-19。

图片

图8-18 文件备份结果

PART 7

图像捕获插件

可以在Mac的“图像捕捉”应用程序中使用的工作流程。该工作流程与苹果电脑上内置的图像捕获应用程序结合使用,当图像从相机、iPhone、iPad等导入时执行的一个操作。例如当接收图像时,对图像的大小进行调整。

示例:装裱图片。启动Automator程序并新建一个图像捕获插件类型的文稿,然后依次执行如下操作:

1.工作流中添加一个移动访达项目操作。【至】设置为test文件夹。

2.工作流中添加一个拷贝访达项目操作。【至】设置为test2文件夹。

3.工作流中添加一个装裱图像操作。调节画布尺寸宽度和高度至合适位置。

操作添加完成后,工作流截图如图8-19所示。

图片

图8-19 装裱图片工作流

完成操作添加后将该工作流保存成“装裱图片.workflow”, 默认保存在 /Users/[用户名]/Library/Workflows/Applications/Image Capture目录下。保存后在图像捕捉应用程序中就可使用。

4.打开图像捕捉程序,手机连接Mac笔记本后图像捕捉程序会自动识别设备。【导入到】下拉框选择刚刚创建的“装裱图片.workflow”,接着选择需要导入的图片,最后点击【导入】或【全部导入】按钮。test2文件夹下就会出现装裱过后的图片,如图8-20所示。

图片

图8-20 装裱图片

PART 8

听写命令

只要使用指定的听写,此工作流就会运行。通过使用辅助功能的增强听写选项,可以建立语音驱动的工作流,即在激活听写时自动将某些关键字作为触发器。

听写命令其实我们经常使用,例如说一句“Siri,播放音乐”后Mac会自动启动音乐程序并播放音乐。Automator的听写命令类型文稿就是创建一个工作流,接收语音指令,然后执行对应的操作。例如设置语音输入命令“计算机,将 Mac 置于睡眠模式”,则在听写状态下接收到该语音就会将Mac置于睡眠模式。

示例:浏览器中打开必应网站。启动Automator程序并新建一个听写命令类型的文稿,然后依次执行如下操作:

1.听写命令类型文稿新建后会有一个【听写命令】输入框,用来输入接受的指令,在此输入“打开必应网站”;勾选【命令已启用】复选框。

2.工作流中添加一个获得指定的URL操作。将地址列表中默认的URL修改为https://cn.bing.com/。

3.工作流中添加一个显示网页操作。

操作添加完成后,工作流截图如图8-21所示。

图片

图8-21 打开必应网站工作流

完成操作添加后将该工作流保存成“打开必应网站.app”, 默认保存在 /Users/[用户名]/Library/Speech/ Speakable Items目录下。保存后在语音功能中说出打开必应网站就实现操作。

4.进入【系统偏好设置】>>【辅助功能】>>【语音控制】,然后点击界面中的【命令...】按钮,勾选【打开必应网站】复选框(默认就是勾选状态),操作如图8-22所示。

图片

图8-22启用“打开必应网站”指令

5.进入【系统偏好设置】>>【辅助功能】>>【语音控制】,在语音控制设置界面勾选【启用语音控制】复选框,启用语音控制后桌面会出现一个语音输入的麦克风图标。

6.语音控制功能在启用状态下,说出“打开必应网站”。当识别到“打开必应网站”指令后便会执行“打开必应网站.app”程序,在浏览器中打开必应首页,打开后如图8-23所示。

图片

图8-23 指令识别后执行结果

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

MacApp自动化测试之Automator初体验

今天我们继续讲Automator的使用。 初体验 启动Automator程序,选择【工作流程】类型。从资源库区域依次将获取指定的URL、从网页中获得文本、新建文本文件三个操作拖进工作流创建区域。 然后修改内容,将获取指定的URL操作中的URL替换成https://www.cnb…...

Vue学习v-html

Vue学习v-html 一、前言1、基本用法2、注意事项 二、总结 一、前言 学习 Vue.js 中的 v-html 指令意味着你想要在你的应用程序中动态地渲染 HTML。这个指令允许你将数据中包含的 HTML 代码直接插入到你的模板中,而不是将其作为纯文本处理。虽然这个功能非常强大&am…...

C++并发:锁

一、前言 C中的锁和同步原语的多样化选择使得程序员可以根据具体的线程和数据保护需求来选择最合适的工具。这些工具的正确使用可以大大提高程序的稳定性和性能,本文讨论了部分锁。 二、std::lock 在C中,std::lock 是一个用于一次性锁定两个或多个互斥…...

Git | git log 和 git status 的区别

如是我闻: git log和git status是Git中的两个非常有用的命令,它们用于不同的目的,并提供不同类型的信息。 git log git log命令用于显示一个或多个分支的提交历史记录。这个命令会列出提交历史,包括每次提交的SHA-1哈希值、提交…...

Django 4.x 智能分页get_elided_page_range

Django智能分页 分页效果 第1页的效果 第10页的效果 带输入框的效果 主要函数 # 参数解释 # number: 当前页码,默认:1 # on_each_side:当前页码前后显示几页,默认:3 # on_ends:首尾固定显示几页&#…...

java-spring 09 下.populateBean (方法成员变量的注入@Autowird,@Resource)

1.在populateBean 方法中的一部分:用于Autowird,Resource注入 // 后处理器已经初始化boolean hasInstAwareBpps hasInstantiationAwareBeanPostProcessors();// 需要依赖检查boolean needsDepCheck (mbd.getDependencyCheck() ! AbstractBeanDefinitio…...

赛氪网携手众机构助力第七届京津冀生态修复实践论坛圆满落幕

近日,由北京生态修复学会联合工业固废网、中国老科协国土资源分会共同主办,赛氪网作为支持单位的第七届京津冀生态修复实践论坛在北京温德姆酒店圆满落幕。本次论坛汇聚了众多行业专家、学者以及企业代表,共同探讨生态修复领域的新技术、新方…...

Naive RAG 、Advanced RAG 和 Modular RAG 简介

简介: RAG(Retrieval-Augmented Generation)系统是一种结合了检索(Retrieval)和生成(Generation)的机制,用于提高大型语言模型(LLMs)在特定任务上的表现。随…...

Python高级编程-DJango2

Python高级编程-DJango2 没有清醒的头脑,再快的脚步也会走歪;没有谨慎的步伐,再平的道路也会跌倒。 目录 Python高级编程-DJango2 1.显示基本网页 2.输入框的形式: 1)文本输入框 2)单选框 3&#xff…...

bash脚本 报错:/bin/bash^M:解释器错误: 没有那个文件或目录

bash脚本 报错:/bin/bash^M:解释器错误: 没有那个文件或目录 出现这个问题是因为该脚本文件在windows下编辑过 在windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打…...

win10专业版远程桌面连接不上,win10专业版远程桌面连接不上常见原因与解决方法

Win10专业版远程桌面连接功能是一项非常实用的工具,它允许用户远程访问和操作另一台计算机。然而,有时在尝试进行远程桌面连接时,可能会遇到连接不上的情况。本文将分析导致这一问题的常见原因,并提供相应的解决方法。 一、常见原…...

前端 日期 new Date 少0 转换成 yyyy-MM-dd js vue

在console控制台直接输出new Date(),是这样: Fri May 10 2024 23:36:06 GMT0800 (中国标准时间) 输出new Date().toLocaleString(),是这样: 2024/5/10 23:36:06 输出new Date().toISOString(),是这样: …...

Linux中的磁盘分析工具ncdu

2024年5月14日,周二上午 概述 ncdu 是一个基于文本的用户界面磁盘使用情况分析工具。它可以在终端中快速扫描目录,并统计该目录下的文件和文件夹的磁盘使用情况,以交互友好的方式呈现给用户。 安装 在 Debian/Ubuntu 系统下,可…...

Angular入门

Angular版本:Angular 版本演进史概述-天翼云开发者社区 - 天翼云 安装nodejs:Node.js安装与配置环境 v20.13.1(LTS)-CSDN博客 Angular CLI是啥 Angular CLI 是一个命令行接口(Angular Command Line Interface),是开发 Angular 应用的最快、最…...

Java进阶11 IO流、功能流

Java进阶11 IO流-功能流 一、字符缓冲流 字符缓冲流在源代码中内置了字符数组,可以提高读写效率 1、构造方法 方法说明BufferedReader(new FileReader(文件路径))对传入的字符输入流进行包装BufferedWriter(new FileWriter(文件路径))对传入的字符输出流进行包装…...

windows 安装 Conda

1 Conda简介 Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。Conda 是为 Python 程序创建的,适用于 Linux,OS X 和Windows,也可以打包和分发其他软件。一般用conda来维护多个python版本。 2 安装…...

IPsec VPN简介

什么是IPsec? IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。其实就是一种协议簇(类…...

探索 Canva 的功能以及如何有效使用 Canva

『创意瞬间变现!Canva AI Drawing 让你的文字描绘成艺术』 在数字设计和创意领域,Canva 是创新和用户友好性的灯塔。这个平台不仅简化了图形设计,还引入了 AI Drawing 等强大工具,使其成为专业人士和初学者的首选解决方案。让我们…...

python中匿名函数简单样例

目录 一、匿名函数(也称为 lambda 函数): 二、简单样例: 2.1 filter() 函数: 2.2 map() 函数: 2.3 sorted() 函数: 一、匿名函数(也称为 lambda 函数): 简洁性:匿名函数通常比命…...

【SpringBoot】 什么是springboot(二)?springboot操作mybatisPlus、swagger、thymeleaf模板

文章目录 SpringBoot第三章1、整合mybatsPlus1-234-67-10问题 2、整合pageHelper分页3、MP代码生成器1、编写yml文件2、导入依赖3、创建mp代码生成器4、生成代码5、编写配置类扫描mapper类6、编写控制器类 4、swagger1、什么是swagger2、作用3、发展历程4、一个简单的swagger项…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

规则与人性的天平——由高考迟到事件引发的思考

当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...

拟合问题处理

在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...

【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练

本项目提出了ContentV框架,通过三项关键创新高效加速基于DiT的视频生成模型训练: 极简架构设计,最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略,利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…...