javascript - 使用 Applescript 单击 JavaScript/jQuery 链接

标签 javascript applescript

我从来没有用 AppleScript 做过很多事情,但我正在尝试使这个过程自动化。我有一个带有需要单击的按钮的网站。然而,该按钮是使用 JavaScript/jQuery/AJAX 实现的,如下所示:

<div id="divIdOfButton" class="someClass">
    <div class="divClassOfButton someOtherClass">
        <img src="imgOfButton">
    <div>

...

<script type="text/javascript">

$(document).ready(function() {
$('#divIdOfButton .divClassOfButton).click(function() {
...
}}

我试过了,没有任何运气

tell application "Safari"
    activate
    delay 1
    set URL of first document to "http://example.com/"
    do JavaScript "document.getElementById('divIdOfButton').getElementByClassName('divClassOfButton')[0].click()" in front document
end tell

我做了很多搜索,但找不到任何东西。真的很感激一些帮助。

最佳答案

大多数浏览器会忽略对点击事件处理程序的直接调用,it seems (显然是出于安全原因——不要让我开始讨论浏览器中的 JavaScript 安全模型),因此您的 click() 调用根本不执行任何操作。您可以通过 JavaScript 的事件调度机制触发点击事件(参见 this questionanswer of mine )。但是,如果您定位的站点已经包含 jQuery,则您需要做的就是:

tell application "Safari"
    do JavaScript "$('#divIdOfButton .divClassOfButton').click();" in front document
end tell

如果您的DIV中有多个该类的按钮,您需要添加一个过滤器表达式,即

tell application "Safari"
    do JavaScript "$('#divIdOfButton .divClassOfButton :equ(0)).click();" in front document
end tell

但是如果没有这个,您将失去 jQuery 利用的 querySelectorAll 的性能优势(参见 jQuery API docs)。

通过触发 Safari 中 Stack Overflow 网站上的收件箱下拉菜单进行测试。

关于javascript - 使用 Applescript 单击 JavaScript/jQuery 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141849/

相关文章:

http - 从 HTTP 获取变量并使用 AppleScript 处理它

macos - 在 os x mavericks (10.9) 中从 applescript 设置桌面照片

javascript - 如何检查函数内的按钮是否被单击

javascript - 使用列表中的 javascript 进行验证

user-interface - 在 AppleScript 中选择弹出菜单按钮

cocoa - NSAppleScript 泄漏大量内存

python - 使用 applescript (重新)启动 python 脚本

javascript - Chrome 中的 CSS#/HTML5 嵌套表格和子填充

javascript - JavaScript 中鼠标光标周围的图像叠加

javascript - 如何在jquery中设置日期选择器的最小值和最大值?