自动化buttonclick苹果脚本时出现“缺少值”结果

时间:2018-06-25 18:04:51

标签: javascript applescript

尽管我已经发布了一个类似的问题,该问题已经得到很好的回答,但是我仍然不明白为什么会发生此错误以及如何解决它。这是我的代码...

to ClickNameClass(theClass, elementnum)
    tell application "Google Chrome"
    open location "https://www.google.com"
        tell active tab of front window
            execute javascript "document.getElementsByClassName(' " & theClass & " ')[' " & elementnum & " '].click();"
        end tell
    end tell
end ClickNameClass

这是自动按钮单击的语法吗?如果是,为什么会出现错误?任何帮助表示赞赏.....

1 个答案:

答案 0 :(得分:0)

为了完整起见,我要添加一个答案...

your other question一样,execute javascript ... 代码格式错误,在<{>}周围也有个空格就像在className周围有单引号一样。

已根据您最初发布的内容重写的以下indexValue 处理程序将在目标URL 中打开“ https://www.google.com”此实例,等待页面加载,然后单击 Google主页上的登录按钮。

clickElementByClassName

在“脚本编辑器”中的“答复”窗格上显示:

on clickElementByClassName(thisURL, className, indexValue)
    tell application "Google Chrome"
        open location thisURL
        repeat until (loading of active tab of front window is false)
            delay 0.1
        end repeat
        tell active tab of front window
            execute javascript "document.getElementsByClassName('" & className & "')[" & indexValue & "].click();"
        end tell
    end tell
end clickElementByClassName


clickElementByClassName("https://www.google.com", "gb_7f gb_Fa gb_Jb", 0)

如您所见,在页面完成加载并且{的两边都没有 space 之前,不会处理 code tell application "Google Chrome" open location "https://www.google.com" get loading of active tab of window 1 --> true get loading of active tab of window 1 --> true get loading of active tab of window 1 --> true get loading of active tab of window 1 --> false execute active tab of window 1 javascript "document.getElementsByClassName('gb_7f gb_Fa gb_Jb')[0].click();" --> missing value end tell Result: missing value 行在execute周围使用{1}}或单引号,就像使用原始编码一样。

我还从处理程序中删除了className的硬编码,因此使其更具通用性和可重用性。

如您所见,结果是indexValue,在这种情况下,这并不是一件坏事,就像在测试中将我带到此示例中的 Sign in-Google Accounts 页面