我想在终端中使用此命令: osascript -e'退出app“ISISClientManager”' 它有效,但应用程序有一个是或否的对话框。 我可以自动让脚本选择是。
我确信这是一个基本问题。如此基本,我无法在谷歌找到答案。 谢谢, 伊恩
答案 0 :(得分:0)
第一反应:哇,营销可能是明智的,重新考虑这个名字。
第二反应:您可以使用辅助功能API执行此操作:
如果"是"按钮是默认选项:
osascript -e 'tell application "MyApp" to activate' -e 'tell application "System Events" to keystroke return'
如果它不是默认设置,那么显然会是一个更艰难的时间,但如果打开全键盘访问,您可以通过Tab键和空格键击的某种组合来实现(两者之间有小的延迟让UI赶上)。或者,您可以获得窗口的位置,测量"是"的位置。相对于其中一个角的按钮,模拟那里的点击事件,并希望在该应用的某个未来版本中布局不会发生变化。
编辑:别介意以上;您实际上可以让系统事件按名称查找按钮并单击它:
osascript -e 'tell application "System Events" to tell process "MyApp" to click button "Yes" of front window'
或者,如果按钮位于工作表中:
osascript -e 'tell application "System Events" to tell process "MyApp" to click button "Yes" of sheet 1 of front window'
您可能需要启用终端或您在“系统偏好设置”中发送此设备的任何应用 - >隐私 - >这种方法的可访问性。