1

我试图在使用 applescript 的网页上单击 safari 中的一个简单按钮。我有以下代码:

tell application "Safari"
    activate
    repeat 5 times
        do JavaScript "document.all(\"Roll Again\").click()" in document 1
        delay 2
    end repeat
end tell

但是,当我运行此代码时,出现错误:“缺失值”。事件日志显示以下结果:

tell application "Safari"
    activate
    do JavaScript "document.all(\"Roll Again\").click()" in document 1
        --> missing value
    do JavaScript "document.all(\"Roll Again\").click()" in document 1
        --> missing value
    do JavaScript "document.all(\"Roll Again\").click()" in document 1
        --> missing value
    do JavaScript "document.all(\"Roll Again\").click()" in document 1
        --> missing value
    do JavaScript "document.all(\"Roll Again\").click()" in document 1
        --> missing value
end tell

有人可以告诉我为什么没有按下按钮以及缺失值是什么意思吗?还有另一种更简单的方法来实现按钮按下吗?我可以使用 automator 按下按钮,但我想使用 AppleScript 来完成。

PS 文档是 safari 中的当前窗口

4

1 回答 1

0

document.all特定于 IE,在 Safari 中不起作用。尝试使用 getElementById 或 querySelectorAll:

tell application "Safari"
    activate
    tell document 1
        do JavaScript "document.getElementById(\"nav-badges\").click()"
        delay 5
        do JavaScript "document.querySelectorAll(\"#hmenus a\")[0].click()"
    end tell
end tell
于 2013-03-23T12:14:28.217 回答