javascript - 使用 JavaScript | Applescript 在 Safari 中单击按钮

标签 javascript html macos click applescript

我意识到有几个与此相关的线程,它们都非常特定于某个网站。我的背景是 Python,而不是 Javascript 或 Applescript,我对如何实现此操作感到困惑。

我见过几个脚本执行此操作,即:

tell application "Safari"

activate

do JavaScript "document.forms['search']['order_list_search_batch'].click()"

end tell

实现这一点的最佳方法是什么?

我对 "document.forms[WHATGOESHERE?].click()"之间的内容感到困惑

我正在尝试单击 http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi 上的“继续”按钮.

我转到“继续”按钮上的“检查元素”并得到以下代码:

<input style="cursor: pointer;" value="" name="proceed" class="proceed" onmouseover="this.style.cursor=&quot;pointer&quot;" type="submit">

我如何知道在脚本中放入什么内容以根据检查元素结果单击此按钮?我想了解,以便我可以在多种情况下使用此方法。没有它所指向的 href 链接。

enter image description here

当前代码不起作用

tell application "Safari" to activate
open location "http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi"
delay 3
tell application "Safari" to do JavaScript "document.forms[0].elements[document.forms[0].elements.length-1]"

最佳答案

更改 JavaScript 查询

document.forms['search']['order_list_search_batch'].click()

document.forms['form']['proceed'].click()

如果您检查“继续”按钮,您会发现它位于具有“name”属性且值为“form”的表单元素内。该按钮本身有一个“name”属性,其值为“proeed”。因此,在 JavaScript 中,括号之间的第一个术语查找名为“form”的表单,第二个术语指“form”表单内名为“proceed”的元素。如果这有意义的话;-)

此外,您还必须告诉 AppleScript 在哪个文档中执行 JavaScript。如果没有打开其他选项卡,您刚刚打开的文档可能是文档 1。

希望这有帮助!

整个代码:

tell application "Safari"
activate
open location "http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi"
delay 3
do JavaScript "document.forms['form']['proceed'].click()" in document 1
end tell

关于javascript - 使用 JavaScript | Applescript 在 Safari 中单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21468058/

相关文章:

php - 将 2 级回复转换为无限回复

javascript - 如何删除 pinterest 小部件的板边框?

ios - 调度定时器源中的数据争用

macos - 在没有主机应用程序的情况下创建 OS X Today 小部件

javascript - 为什么分页链接点击后返回json? (Vue.js 2)

javascript - 使用javascript设置iframe的高度

javascript - 为什么我能够在 Node/Jest 中访问 WebSocket native 浏览器对象?

javascript - 具有.net核心模型的AngularJS未绑定(bind)

所有输入值的 jQuery 表单重置按钮

ruby - 如何在 OSX Lion 上安装(构建)Ruby 1.9.3?