Applescript:使用JS单击按钮

时间:2019-08-23 11:49:01

标签: javascript safari applescript

我正在尝试使用Applescript自动单击按钮以在Safari上下载文件

到目前为止,我已经尝试了几种方法,但是没有任何效果。最好的情况是,它根本不返回任何内容,只是转到脚本的下一部分。

每个请求的下载文件都会更改。

这是我所使用的网页上显示的类:

<div id="events-table"> = $0
  <div class="bootstrap-table">
    <div class="fixed-table-toolbar">
      <div class="bs-bars pull-right">
        <div id="table-toolbar" class="ml-3">
          <a class="btn btn-default" href="/event_sequences/myfile.csv">Download CSV</a>
        </div>
       </div>
      <div class="columns column-right btn-group pull-right>...</div>
      ::after
    </div>
    <div class="fixed-table-container" style="padding-bottom: 0px;">...</div>
   </div>
   <div class="clear fix">...</div>
  </div>
</div>

下面是我尝试过的一些代码,没有一个成功


tell application "Safari"
do JavaScript "document.title = 'Download';" in current tab of window 1
end tell

tell application "Safari"
do JavaScript "document.title = 'Download CSV’;” in current tab of window 1
end tell

tell application "Safari" to ¬
do JavaScript ¬
"document.querySelectorAll(\"[href=\\\"Download CSV\\\"]\")[0].click();" in current tab of window 1


我也尝试过“手动”操作,但由于我似乎不知道如何到达按钮,所以它也没有起作用:

Tell application "System Events" to tell process "Safari"
    set frontmost to true

    repeat 7 times
        keystroke option
        keystroke (ASCII character 9)

    end repeat
    keystroke return
end tell

当我尝试手动到达页面上的按钮时,7 Option Tab正是我所需要的,但是如果我使用脚本,它将进入下方并替换按钮下方字段中的某些值。我尝试增加和减少重复次数,但没有成功。

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果这是页面上唯一具有该class名称的下载按钮,请尝试以下操作:

tell application "Safari" to do JavaScript "document.getElementsByClassName('btn btn-default')[0].click();" in document 1