使用Javascript | Applescript在Safari中单击按钮

使用Javascript | Applescript在Safari中单击按钮,javascript,html,macos,click,applescript,Javascript,Html,Macos,Click,Applescript,我意识到有几个线程关于这一点,他们都非常特定于某些网站。我的背景是Python,而不是Javascript或Applescript,我对如何实现这个操作感到困惑 我见过几个脚本执行此操作,即: tell application "Safari" activate do JavaScript "document.forms['search']['order_list_search_batch'].click()" end tell 最好的方法是什么 我对文档.表单[WhatGoesher?

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

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

tell application "Safari"

activate

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

end tell
最好的方法是什么

我对文档.表单[WhatGoesher?]之间的内容感到困惑。单击()“

我正在试着点击屏幕上的“继续”按钮

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

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

将JavaScript查询从

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

如果检查“继续”按钮,您会发现它位于一个表单元素中,该元素具有一个值为“form”的“name”属性。按钮本身有一个值为“继续”的“名称”属性。因此,在JavaScript中,括号中的第一个术语查找名为“form”的表单,第二个术语指的是“form”-表单中名为“procedure”的元素。如果说得通的话;-)

此外,您还必须告诉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查询从

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

如果检查“继续”按钮,您会发现它位于一个表单元素中,该元素具有一个值为“form”的“name”属性。按钮本身有一个值为“继续”的“名称”属性。因此,在JavaScript中,括号中的第一个术语查找名为“form”的表单,第二个术语指的是“form”-表单中名为“procedure”的元素。如果说得通的话;-)

此外,您还必须告诉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 dom函数
getElementsByName()
,它将返回具有该名称的所有元素的数组,您可以(在本例中)将第一项作为目标

此外,您还需要专门针对要在其中执行javascript的选项卡,以使其在Safari中工作

见下文

tell application "Safari"
    activate
    open location "http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi"
    delay 3
    do JavaScript "document.getElementsByName('proceed')[0].click();" in current tab of first window
end tell

您可以使用javascript dom函数
getElementsByName()
,它将返回具有该名称的所有元素的数组,您可以(在本例中)将第一项作为目标

此外,您还需要专门针对要在其中执行javascript的选项卡,以使其在Safari中工作

见下文

tell application "Safari"
    activate
    open location "http://rna.tbi.univie.ac.at/cgi-bin/RNAfold.cgi"
    delay 3
    do JavaScript "document.getElementsByName('proceed')[0].click();" in current tab of first window
end tell