使用Javascript单击按钮
我制作了一个AppleScript来访问网页并登录。嗯,在某个时候我需要点击一个按钮来确认我的投票。 下面是我在按钮上看到的内容:使用Javascript单击按钮,javascript,safari,applescript,Javascript,Safari,Applescript,我制作了一个AppleScript来访问网页并登录。嗯,在某个时候我需要点击一个按钮来确认我的投票。 下面是我在按钮上看到的内容: <form method="post" action="/website/in/16"> <input type="submit" name="valid" value="Valider mon vote" class="btn btn-default" /> 点击链接进行投票会将一个网页打开到现有网页中,这会改变我的问题吗?您必须指定
<form method="post" action="/website/in/16">
<input type="submit" name="valid" value="Valider mon vote" class="btn btn-default" />
点击链接进行投票会将一个网页打开到现有网页中,这会改变我的问题吗?您必须指定JavaScript应该在其中评估的文档
do JavaScript "document.readyState" in document 1
现在,它在最前面窗口的最前面选项卡中进行计算。
一个安全的方法是这样的:
tell application "Safari"
do JavaScript "document.getElementsByName('valid').click();" in item 1 of (every tab of every window whose URL starts with "http://www.votepage.com/")
end tell
现在,即使选项卡位于后台(或者Safari不是最前端的应用程序),它也可以工作。看起来确实需要指定选项卡,尽管Safari的AppleScript字典建议选项卡规范是可选的(从OS X 10.9.2开始)。感谢您的提示和更正。我已经更新了。事实上,我同意你的看法。:)字典声明您将目标指定为选项卡对象,但似乎您也可以使用文档对象。然而,字典还声明选项卡规范是可选的,这在现实中并不正确。考虑到没有选项卡规范的命令会编译并完全以静默方式失败,我猜这是一个bug,其目的是默认情况下在前窗口的当前选项卡中执行。
tell application "Safari"
do JavaScript "document.getElementsByName('valid').click();" in item 1 of (every tab of every window whose URL starts with "http://www.votepage.com/")
end tell