实际上我对同一个问题有 3 个问题:用 applescript 控制窗口。
- 如果我要按“Google Chrome”应用程序的“关闭窗口”按钮,我该怎么办?
- 是否可以检查窗口是否发生变化?例如,查看是否出现弹出窗口或类似的...
- 点击特定位置进入窗口怎么样?我的意思是,我知道我可以使用
tell application "System Events"
click at {x,y}
end tell
但此命令使用整个屏幕作为引用系统,我希望它仅适用于特定窗口。例如,如果在“{x,y}”处输入“{1,1}”,applescript 将点击菜单栏上的第一项。有没有一种方法可以让“系统事件”点击“{1,1}”,但在窗口“Google Chrome”上?
最佳答案
以下是如何使用 AppleScript 关闭 Google Chrome 前窗的三个示例:
注意:以下假设在您测试每个示例 AppleScript 代码<时,Google Chrome 运行时至少打开一个窗口/em> 在脚本编辑器中。
示例一是最直接的方式:
tell application "Google Chrome" to close front window
例子二直接点击关闭按钮:
tell application "System Events" to tell ¬
application process "Google Chrome" to ¬
click button 1 of front window
示例三计算关闭按钮的中心并点击那里:
activate application "Google Chrome"
delay 0.5
tell application "System Events" to tell ¬
application process "Google Chrome" to tell ¬
front window
set posB1 to (position of button 1)
set szB1 to (size of button 1)
set x to (item 1 of posB1) + (item 1 of szB1) / 2 as integer
set y to (item 2 of posB1) + (item 2 of szB1) / 2 as integer
end tell
tell application "System Events" to click at {x, y}
请注意,在前两个示例中,Google Chrome 的前窗口甚至不需要是桌面上最前面的窗口;然而,对于第三个示例,它确实如此,否则 click at {x, y}
将不会到达预期的目标。
就是说,如果示例三是直接的方式(如示例一)来完成工作,那么真的不应该使用示例三。示例 3 只是一个概念验证,用于获取要点击的坐标。此方法在某些边缘情况下可能很有用,尤其是在不直接支持 AppleScript 的应用中。
注意:示例 AppleScript 代码 就是这样,不包含任何可能的错误 处理合适的。用户有责任添加任何适当、需要或想要的错误处理。看看 try 声明 和error AppleScript Language Guide 中的声明 .另见,Working with Errors .
关于window - 单击窗口上的特定位置,单击特定按钮并控制窗口是否更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57070312/