我正在尝试使用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正是我所需要的,但是如果我使用脚本,它将进入下方并替换按钮下方字段中的某些值。我尝试增加和减少重复次数,但没有成功。
在此先感谢您的帮助!
答案 0 :(得分:0)
如果这是页面上唯一具有该class
名称的下载按钮,请尝试以下操作:
tell application "Safari" to do JavaScript "document.getElementsByClassName('btn btn-default')[0].click();" in document 1