Macos Applescript:通过gui脚本单击菜单栏项
我正在尝试为一个名为F.lux的应用程序创建一个applescript,该应用程序单击菜单项“禁用一小时”,如下面的屏幕截图所示: 元素路径如下面的屏幕截图所示: 以下是我迄今为止的代码:Macos Applescript:通过gui脚本单击菜单栏项,macos,applescript,Macos,Applescript,我正在尝试为一个名为F.lux的应用程序创建一个applescript,该应用程序单击菜单项“禁用一小时”,如下面的屏幕截图所示: 元素路径如下面的屏幕截图所示: 以下是我迄今为止的代码: tell application "System Events" tell process "Flux" click (menu bar item 1 of menu bar 2) click menu item "Disable for an hour" of m
tell application "System Events"
tell process "Flux"
click (menu bar item 1 of menu bar 2)
click menu item "Disable for an hour" of menu 1 of menu bar item 1 of
menu bar 2
end tell
end tell
一切都可以正常编译,但在尝试运行脚本时,我不断收到以下错误消息:
错误“系统事件发生错误:无法获取进程“通量”菜单栏2菜单栏项目1的菜单1。索引无效。进程“通量”菜单栏项目2菜单栏项目1菜单1编号-1719
有人能指出我的错误在哪里吗?这对我来说很有效,但在第一次单击命令后有大约5秒的延迟
tell application "System Events" to tell process "Flux"
tell menu bar item 1 of menu bar 2
click
click menu item "Disable for an hour" of menu 1
end tell
end tell
一种解决方法是使用忽略应用程序响应
并在单击命令后终止系统事件:
ignoring application responses
tell application "System Events" to tell process "Flux"
click menu bar item 1 of menu bar 2
end tell
end ignoring
do shell script "killall System\\ Events"
delay 0.1
tell application "System Events" to tell process "Flux"
tell menu bar item 1 of menu bar 2
click menu item "Disable for an hour" of menu 1
end tell
end tell
这不是一个标准的菜单项。@DanielA.White您是否认为没有通过applescript选择此特定选项的解决方案?我相信您不能使用GUI脚本与不属于系统的菜单栏额外功能(第三方菜单栏额外功能,如本功能)。别逼我这么做,但那是我的总体印象。你可能会想做一些进一步的研究。你有一个屏幕截图的UI浏览器屏幕阅读器是什么?@整个星期我相信它的UI浏览器从这个工作得很好。我喜欢你的网站,顺便说一句,似乎是一个很好的地方去感受applescript。我想+1,但我需要更多的rep。顺便问一下,有没有办法在脚本运行时隐藏gui操作?@BlackMilk没有。您正在编写gui脚本,因此无法隐藏它。需要看到它被执行。@BlackMilk您可以通过
do shell脚本“open-g applicationNamePath”
调用(甚至运行)应用程序来隐藏gui操作,然后告诉系统事件要做什么。GUI必须对系统“可见”,而不是对用户。因此,如果一个应用程序在后台,它将留在那里(“可读”),如果它新打开,它将在最前面的应用程序后面打开。当然,任何菜单点击都是可见的,尽管以毫秒为单位。(我偶尔会这样做一些“系统首选项设置”,速度非常快。)如果第二个脚本有问题,请在killall System\\Events