我意识到有几个与此相关的线程,它们都非常特定于某个网站。我的背景是 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="pointer"" type="submit">
我如何知道在脚本中放入什么内容以根据检查元素结果单击此按钮?我想了解,以便我可以在多种情况下使用此方法。没有它所指向的 href 链接。
当前代码不起作用
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/