如何使用applescript滚动到窗口顶部?

时间:2011-02-11 04:52:45

标签: applescript scroll

我希望Applecript一直向上滚动窗口。

我已经尝试过向上翻页键,主页键,我尝试使用窗口的内置滚动功能查找滚动方式,但到目前为止我还是无法移动滚动条这个位置。

3 个答案:

答案 0 :(得分:8)

答案 1 :(得分:4)

使用浏览器,您也可以使用JavaScript:

tell application "Safari" to tell document 1
    do JavaScript "window.scroll(0,0)"
end tell

tell application "Google Chrome" to tell active tab of window 1
    execute javascript "window.scroll(0,0)"
end tell

答案 2 :(得分:1)

发送击键的替代方法是使用GUI scripting

警告:虽然GUI脚本更强大比发送应用程序的给定版本的击键更改,但应用程序布局中的更改< strong>未来版本可能会破坏您的代码。

此外:

  • GUI脚本要求启用对辅助设备的访问;启用需要管理员权限:

    • 高达10.8,这可以通过执行tell application "System Events" to set UI elements enabled to true(必需的管理员权限)以编程方式系统范围完成
    • 可悲的是,在10.9以上,这不再有效,并且必须手动,单独授权 - 系统会在首次运行时提示您(需要管理员权限)
    • 但是,在这两种情况下,tell application "System Events" to get UI elements enabled 报告是否启用了访问权限。
  • 确定正确的UI元素目标可能非常重要且乏味;使用Accessibility Inspector附带的Xcode实用程序有帮助。此实用程序报告的类名对应于UI element字典中包含的System Events类;例如,AXSplitGroup对应splitter group

以下将Safari 6.0.3的前窗滚动到顶部(必须启用辅助设备访问):

tell application "System Events"

    # Use Accessibility Inspector to find the desired target.
    tell front window of process "Safari"
        tell scroll bar 1 of scroll area 1 of group 1 of group 1 of last group
            set value of attribute "AXValue" to 0  # Scroll to top.
        end tell
    end tell

end tell

更新:提醒一下,对于给定版本的应用,此类脚本可以正常运行,但必须更改Safari 8.0.4的代码:

tell application "System Events"

    # Use Accessibility Inspector to find the desired target.
    tell front window of process "Safari"
        tell scroll bar 1 of scroll area 1 of group 1 of group 1 of group 2
            set value of attribute "AXValue" to 0  # Scroll to top.
        end tell
    end tell

end tell