AppleScript 'missing value' 中的 Javascript(用于在 Safari 中单击按钮)

标签 javascript html safari applescript

我有以下包含 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 中以将其包装成更长的例程。

感谢您的建议!

最佳答案

我已经成功地解决了这个问题,将 JS 的末尾修改为:

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

关于AppleScript 'missing value' 中的 Javascript(用于在 Safari 中单击按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074685/

相关文章:

javascript - 可选类型的 jQuery 选择器

javascript - 无需迭代jquery即可快速从2D数组获取索引

javascript - 如何实现防止输入任意标签的标签选择器?

javascript - 对 SVG 组应用 CSS 变换(例如 D3 的缩放变换)会导致其文本元素在 Safari 中闪烁

javascript - jQuery ajax 发布大数据在 Chrome 和 Safari 中很慢

safari - 以编程方式更改 Safari 浏览器扩展的图标?

javascript - 在不创建实际 map 的情况下实现 google API 自动完成

javascript - Skype URI 在 Chrome、iPad、iPhone 上无法在 HTTPS 下运行

jquery - 如何在溢出的视差行中包含内容

javascript - 使用 Jquery 从本地计算机重新加载或刷新页面