Apple自动化利器AppleScript
最近发现在mac的办公环境下有很多重复的地方,作为一个对电脑略知一二的人都知道,重复工作做了7次以上就应该用代码解决掉它。这种连接VPN的工作每天都得重复个两三次,那么就写个捷径,自动化它吧。
x01 环境需求
Mac
Accessibility inspector(Mac 自带)
自动化对象(理论来说是任何对象,但是只是对App)
Siri捷径
x02 自动化需求
因为有部分业务需要连接到公司VPN内,软件为Cisco的AnyConnect每天需要点击应用两到三次,这还不是最烦的,还要再点击按钮认证,然后弹框,输入用户名和密码,再点击登录,弹窗,再点击同意认证的协议,才能连接上VPN。因为这个工作非常繁琐,并且之前接触过Siri捷径,就想到自动化解决这个事情了。
x03 APP自动化开发
快捷指令内的AppleScript并不是和单独的scpt文件一样,是简化版的scpt。但是语法逻辑和javascript都是很像的。我认为AppleScript更大白话一些,指令都和说话一样好理解。
先了解一下Mac的key code (键盘码),下图简洁明了:
本项目只用了48(Tab)和76(Enter)键盘码。
接下来看程序
默认是给一个run函数的,所有命令都运行在run函数内,但是还是建议不用run函数,因为在调试过程中不方便显示信息,例如运行 “ entire contents – 获取所有 UI 元素” 命令时是无返回的:
run函数:
on run {input, parameters}(* Your script goes here *)return input
end run
首先要打开自己的应用,应用名称可以在任务管理器内找到,我这里是 Anyconnect
activate application "Cisco AnyConnect Secure Mobility Client"
打开应用后就是按照逻辑来走了,但是需要的有以下几点:
注意
1.延迟:delay在本地请求可以设置低点,远程连接时还是尽量长一点,防止等待时间不够
2.最开始我尝试用 keystroke 去输入用户名和密码信息,但是发现会遇到输入法的问题,懒得去用applescript调到默认英文输入法了,就直接把信息放在剪贴板内再粘贴到应用内输入
3.粘贴板处理完后要注意信息的保护,尤其是输入密码,因此最后一项操作是覆盖(清楚)剪切板:
set the clipboard to "helloworld" --清除剪切板
项目代码
activate application "Cisco AnyConnect Secure Mobility Client"
tell application "System Events"tell process "Cisco AnyConnect Secure Mobility Client"delay 1-- entire contents -- 获取所有 UI 元素key code 76 -- 确认delay 1-- 输入用户名和密码set the clipboard to "xxxx"keystroke "v" using command downdelay 0.5key code 48 -- 跳转到密码delay 0.5set the clipboard to "xxxxxx"keystroke "v" using command downkey code 76 -- 点击连接vpndelay 1set the clipboard to "xxxxxxx"keystroke "v" using command downdelay 0.5key code 76 -- enterdelay 0.5key code 76 --同意协议set the clipboard to "helloworld" --清除剪切板end tellend tell
x04 踩坑
用到Accessibility inspector去找到自己App内的element了。和Chrome的开发者工具找元素是一样的,非常好用。但是我没有找到具体的element对应的button并点击(请大佬指教)。
参考链接:
https://eastmanreference.com/complete-list-of-applescript-key-codes
Apple自动化利器AppleScript相关推荐
- 爬虫 + 自动化利器 selenium 之自学成才篇(二)
文章目录 设置元素等待 显式等待 隐式等待 强制等待 定位一组元素 切换操作 窗口切换 表单切换 弹窗处理 ❤ 系列内容 ❤ 爬虫+自动化利器 selenium 之自学成才篇(一) 主要内容:sele ...
- 新工具开源!一款iOS自动化利器(附地址)
tidevice 是阿里的内部的一个小组用来做 iOS 自动化用的工具,通过逆向iOS通信协议,使用纯Python实现.目前淘宝和其他部分事业部已经全面使用了该技术,进行iOS应用的性能采集,UI自动 ...
- 微信html5测试工具,FAutoTest- 微信小程序 / 公众号 H5 自动化利器
X5 内核 H5 自动化背景 近来有很多童靴咨询如何做微信小程序/公众号等 H5 页面来做自动化,之前写了一篇文章微信小程序自动化测试实践 https://www.cnblogs.com/yyoba/ ...
- 效率提升:使用AppleScript模拟鼠标键盘操作制作自动化工具
文章目录 前言 AppleScript的实践应用 实践:还原修饰键默认设置 AppleScript基础知识 1.基本模块 语法 变量和属性 类型转换 运算符 List(数组) Record(键值对) ...
- GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言,网友:第三方凉凉...
郭一璞 栗子 发自 凹非寺 量子位 出品 | 公众号 QbitAI GitHub激动地宣布,终于支持CI/CD了. CI\CD,全称:持续集成 (Continuous Integration) ,持续 ...
- Mac 自动化自动操作工作流程(Workflow)完成日常软件文件网页一键打开
进入软件<启动台>,找到<自动操作>工具(其他),打开,点击下方<新建文稿>. 提示选择文稿类型,选<工作流程>,点<选取>进入新建. 1. ...
- Mac OS X 中的脚本语言应用
http://www.applesupport.com.cn/newshow.asp?id=2442&cid=7 如你所见,Mac OS X 是一套广受程序员喜爱的操作系统,他们之所以如此喜欢 ...
- python 微信视频_基于Python快速整理微信视频与图片
photoes.jpg 作为超级APP,微信已经成了移动互联网的入口.而我们也早已习惯通过微信收发图片与视频等多媒体文件.身为一名屌丝通信狗,经常出差海外,跟家人的沟通方式主要就靠微信了,每当累了或抑 ...
- 后端程序员的前端工具
后端程序员的前端工具 在总结监控系统时,其中有一点:将API 接口开发转变为SQL 查询,支持sql算子.这样后端开发工程师就不用疲于奔命提供查询服务了.听说阿里巴巴的产品工程师也要学习SQL语句,为 ...
- iOS开发者工具功能详述
2019独角兽企业重金招聘Python工程师标准>>> Xcode IDE Assistant Editor "助理"按钮将编辑器分为两部分,创建了一个辅助窗格, ...
最新文章
- Windows SQL Server 2008 群集(摘自网络)
- mysql 用户 多主机_MySQL单主机多实例部署
- 第十七届智能汽车竞赛-多车编队组入门讲解
- 用计算机计算器课程,信息技术学科“神奇的计算器”教学设计
- UA MATH523A 实分析3 积分理论例题 讨论原函数的连续性
- 【转】女人最想要的是什么
- Oracle Siebel CRM技术的前景
- PHOTOSHOP教程
- mysql怎么导入sql文件_如何将sql文件导入mysql
- 抢小米软件html版(简单有效)
- Android native crash debug
- 百度编辑器嵌套秀米编辑器遇到的问题
- 得把这东西留起来,经常看看
- ASP.NET网页响应莫明其妙反应奇慢,原来故障根源在于DNS解析冲突
- 华为机试(JAVA)真题Od【A卷+B卷】
- 用excel做logistic回归分析_怎样用SPSS做二项Logistic回归分析?结果如何解释?
- 常用印制电路板标准汇总
- Navicat Premium 12的过期激活,问题解决的心路历程
- Win11 OneDrive登录遇到问题0x8004de40
- html上传文件的实例
热门文章
- 如何用Intel主板集成的RAID控制器(Intel RST)实现硬盘提速与硬盘数据恢复
- 【毕业设计】深度学习YOLO安检管制物品识别与检测 - python opencv
- macOS Outlook 查看邮件的源码 HTML源码
- 两种方法解决Undefined symbol SystemInit问题
- linux的lilo,深 入Linux 的LILO-嵌入式系统-与非网
- 实例分析神经网络传播过程
- IT人物TOP100英雄人物榜
- android_静默安装/adb执行/软件搬家/消息派发
- Vue中插入jQuery插件
- 锋麦4S笔记本英伟达独显驱动安装