【问题标题】:Javascript within AppleScript 'missing value' (for clicking button in Safari)AppleScript“缺失值”中的 Javascript(用于在 Safari 中单击按钮)
【发布时间】:2018-01-03 18:01:56
【问题描述】:

我有以下包含 Javascript 的 AppleScript:

set buttontext to "Add Option"
set buttonloc to 1

tell application "Safari"
    activate
    tell window 1
        do JavaScript "var buttonTags = document.getElementsByTagName(\"button\"); 
        var searchText = \"" & buttontext & "\"; 
        var found; 
        for (var i = 0; i < buttonTags.length; i++) 
        {if (buttonTags[i].textContent == searchText) {
        found = buttonTags[i]; break;
        }
        }
        buttonTags[" & buttonloc & "].click();"
    end tell
end tell

它编译得很好,但在执行时没有任何操作,我收到“缺失值”错误。它旨在遍历 Safari 中的网页,并允许用户指定按钮文本和排名以便能够单击它。

当直接在 Safari 的开发控制台中执行此 Javascript 时,它可以工作,但我需要将它放在 AppleScript 中以将其包装成更长的例程。

建议!

【问题讨论】:

    标签: javascript html safari applescript


    【解决方案1】:

    我已经设法通过将 JS 的结尾修改为:

    buttonTags[" & buttonloc & "].click();" in current tab
    

    【讨论】:

    • 是的,很好地解决了这个问题。 Safari 需要知道将其 JavaScript 命令指向何处。您最初将它指向Window 1。除了tell window 1 块,您可以有一个tell document 1 块,然后省略...in current tab。或者,简单地说,tell app "Safari" to do JavaScript "..." in front document
    猜你喜欢
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2011-09-04
    相关资源
    最近更新 更多