Jos*_*hua 3 safari macos applescript automator
我想使用 Automator 和 AppleScript 在 Safari 中填写表单。我有一个功能脚本,看起来像这个玩具示例:
on run {}
tell application "System Events" to keystroke "Hello"
tell application "System Events" to keystroke tab
tell application "System Events" to keystroke "World"
end run
Run Code Online (Sandbox Code Playgroud)
我希望当我位于浏览器中的特定位置时使用键盘快捷键来执行它。但是,当我这样做时,我遇到了权限问题:
The action "Run AppleSCript" encountered an error:
"System Events got an error: Automator Workflow Runner
(WorkflowServiceRunner, my_script_name) is not allowed to send keystrokes"
Run Code Online (Sandbox Code Playgroud)
在System Prefrences -> Security & Privacy -> Privacy -> Accessibility“我已允许Automator和”中AppleScript Utility,在选项卡下 Automation,我已允许System EventsSafari。
如果我也允许 Safari 进入,我可以让它工作,至少是暂时的,Accessibility但这似乎太过激烈,而且让 Safari 始终拥有完全控制权只是偶尔运行一个脚本存在安全风险。
我应该如何处理这个问题?我希望脚本易于使用,并且不想每次都进入设置来临时允许 Safari。或者这也可以自动化吗?是否有一种与 Automator 和 AppleScript 完全不同的方法可以让我以更加用户友好和安全的方式完成此操作?基本上,我想做一些类似于 AutoHotKey 在 Windows 中能够做的事情。
我\xe2\x80\x99m猜测你\xe2\x80\x99所做的是设置一个快速操作,然后给该快速操作一个在\xe2\x80\x9cServices\xe2\x80\x9d下的快捷方式\xe2\x80 \x9cKeyboard:系统偏好设置中的快捷方式\xe2\x80\x9d。我能够通过这样做来重复问题:尝试运行脚本需要 Safari 本身有权访问 \xe2\x80\x9ccontrol your computer\xe2\x80\x9d。如果这不是您\xe2\x80\x99 所做的,那么此解决方案应该仍然有效,但您可能还想更新您的问题,以防有更好的解决方案可用。
\n你能做的就是使用重定向。创建一个可以授予控制计算机权限的应用程序,然后创建一个将启动该应用程序的服务。
\ntell application "Safari" to activate。您需要执行此步骤,因为打开应用程序会将焦点从 Safari 上移开。保存此应用程序。(如果使用 Automator,则在开始创建脚本时告诉 Automator 它\xe2\x80\x99 是一个应用程序;如果使用脚本编辑器,则在保存脚本时告诉脚本编辑器它\xe2\x80\x99 是一个应用程序。 )
\n使用 Automator 创建快速操作。为其指定操作 \xe2\x80\x9cLaunch Application\xe2\x80\x9d 并告诉它启动您刚刚创建的应用程序。
\n此时,您应该能够使用键盘快捷键来运行该应用程序,并且只有该应用程序需要拥有控制您的计算机的权限。
\n| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |