最近发现在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相关推荐

  1. 爬虫 + 自动化利器 selenium 之自学成才篇(二)

    文章目录 设置元素等待 显式等待 隐式等待 强制等待 定位一组元素 切换操作 窗口切换 表单切换 弹窗处理 ❤ 系列内容 ❤ 爬虫+自动化利器 selenium 之自学成才篇(一) 主要内容:sele ...

  2. 新工具开源!一款iOS自动化利器(附地址)

    tidevice 是阿里的内部的一个小组用来做 iOS 自动化用的工具,通过逆向iOS通信协议,使用纯Python实现.目前淘宝和其他部分事业部已经全面使用了该技术,进行iOS应用的性能采集,UI自动 ...

  3. 微信html5测试工具,FAutoTest- 微信小程序 / 公众号 H5 自动化利器

    X5 内核 H5 自动化背景 近来有很多童靴咨询如何做微信小程序/公众号等 H5 页面来做自动化,之前写了一篇文章微信小程序自动化测试实践 https://www.cnblogs.com/yyoba/ ...

  4. 效率提升:使用AppleScript模拟鼠标键盘操作制作自动化工具

    文章目录 前言 AppleScript的实践应用 实践:还原修饰键默认设置 AppleScript基础知识 1.基本模块 语法 变量和属性 类型转换 运算符 List(数组) Record(键值对) ...

  5. GitHub免费支持CI/CD了,开发测试部署高度自动化,支持各种语言,网友:第三方凉凉...

    郭一璞 栗子 发自 凹非寺 量子位 出品 | 公众号 QbitAI GitHub激动地宣布,终于支持CI/CD了. CI\CD,全称:持续集成 (Continuous Integration) ,持续 ...

  6. Mac 自动化自动操作工作流程(Workflow)完成日常软件文件网页一键打开

    进入软件<启动台>,找到<自动操作>工具(其他),打开,点击下方<新建文稿>. 提示选择文稿类型,选<工作流程>,点<选取>进入新建. 1. ...

  7. Mac OS X 中的脚本语言应用

    http://www.applesupport.com.cn/newshow.asp?id=2442&cid=7 如你所见,Mac OS X 是一套广受程序员喜爱的操作系统,他们之所以如此喜欢 ...

  8. python 微信视频_基于Python快速整理微信视频与图片

    photoes.jpg 作为超级APP,微信已经成了移动互联网的入口.而我们也早已习惯通过微信收发图片与视频等多媒体文件.身为一名屌丝通信狗,经常出差海外,跟家人的沟通方式主要就靠微信了,每当累了或抑 ...

  9. 后端程序员的前端工具

    后端程序员的前端工具 在总结监控系统时,其中有一点:将API 接口开发转变为SQL 查询,支持sql算子.这样后端开发工程师就不用疲于奔命提供查询服务了.听说阿里巴巴的产品工程师也要学习SQL语句,为 ...

  10. iOS开发者工具功能详述

    2019独角兽企业重金招聘Python工程师标准>>> Xcode IDE Assistant Editor "助理"按钮将编辑器分为两部分,创建了一个辅助窗格, ...

最新文章

  1. Windows SQL Server 2008 群集(摘自网络)
  2. mysql 用户 多主机_MySQL单主机多实例部署
  3. 第十七届智能汽车竞赛-多车编队组入门讲解
  4. 用计算机计算器课程,信息技术学科“神奇的计算器”教学设计
  5. UA MATH523A 实分析3 积分理论例题 讨论原函数的连续性
  6. 【转】女人最想要的是什么
  7. Oracle Siebel CRM技术的前景
  8. PHOTOSHOP教程
  9. mysql怎么导入sql文件_如何将sql文件导入mysql
  10. 抢小米软件html版(简单有效)
  11. Android native crash debug
  12. 百度编辑器嵌套秀米编辑器遇到的问题
  13. 得把这东西留起来,经常看看
  14. ASP.NET网页响应莫明其妙反应奇慢,原来故障根源在于DNS解析冲突
  15. 华为机试(JAVA)真题Od【A卷+B卷】
  16. 用excel做logistic回归分析_怎样用SPSS做二项Logistic回归分析?结果如何解释?
  17. 常用印制电路板标准汇总
  18. Navicat Premium 12的过期激活,问题解决的心路历程
  19. Win11 OneDrive登录遇到问题0x8004de40
  20. html上传文件的实例

热门文章

  1. 如何用Intel主板集成的RAID控制器(Intel RST)实现硬盘提速与硬盘数据恢复
  2. 【毕业设计】深度学习YOLO安检管制物品识别与检测 - python opencv
  3. macOS Outlook 查看邮件的源码 HTML源码
  4. 两种方法解决Undefined symbol SystemInit问题
  5. linux的lilo,深 入Linux 的LILO-嵌入式系统-与非网
  6. 实例分析神经网络传播过程
  7. IT人物TOP100英雄人物榜
  8. android_静默安装/adb执行/软件搬家/消息派发
  9. Vue中插入jQuery插件
  10. 锋麦4S笔记本英伟达独显驱动安装