我可以使用 applescript 自动点击这个 link 吗?

Can I automate a click on this link using applescript?

我正在编写一个 Applescript 来自动在我的一个 Flickr 相册的 "Organizr" 页面上点击四次来更改我的照片顺序。 link 中的三个具有 ID,因此可以轻松实现这些点击的自动化。例如:

clickID3("comm_button_ok")
to clickID3(theId3)
tell application "Safari"
    do JavaScript "document.getElementById('" & theId3 & "').click();" in document 1
end tell
end clickID3

有效!

但是我如何自动点击这个link?

<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('random'); return false;">Randomly</a>

这是 link 所在菜单的 Flickr Organizr 页面的整批代码:

<div class="candy_menu" id="candy_set_menu_arrange" style="display: block;">
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('date-taken-asc'); return false;">Arrange by date taken (oldest first)</a>
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('date-taken-desc'); return false;">Arrange by date taken (newest first)</a>
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('date-posted-asc'); return false;">Arrange by date uploaded (oldest first)</a>
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('date-posted-desc'); return false;">Arrange by date uploaded (newest first)</a>
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('title'); return false;">Alphabetically</a>
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('random'); return false;">Randomly</a>
<a href="#" onclick="_ge('tabl').tabl_get_active_one_set_mat().mat_resort('reverse'); return false;">Reverse current order</a>
</div>

我知道如何自动点击打开 candy_set_menu_arrange 菜单。但是如何自动点击 "Randomly"?

anchor 元素标签有一个事件属性,onclick,它告诉您单击元素时发生的确切情况。因此,由于您不能自己发出点击,您应该能够将来自 onclick 属性(即 JavaScript 代码)的指令直接转发到 Safari 选项卡:

tell application "Safari" to tell the front document to do JavaScript ¬
    "_ge('tabl').tabl_get_active_one_set_mat().mat_resort('random'); return false;"

否则,您始终可以使用 querySelector() method, which is a lot more powerful than getElement...() methods. I'll let you read the documentation to which I've linked for an overview of what it does, and then you can refer to the CSS Selector Reference 定位元素,只要您需要以各种可能的方式回忆定位元素的特定语法。我将演示的方式是一种可能的方式,您可以根据其包含单词 "random"onclick 属性来定位锚点,返回满足此条件的第一个锚点元素:

document.querySelector('a[onclick*="random"]').click();