首页 > 解决方案 > 自动化 buttonclick 苹果脚本时的“缺失值”结果

问题描述

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

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

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

标签: javascriptapplescript

解决方案


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

您的其他问题一样,execute javascript ... 代码格式错误,在不属于它们的周围有空格,并且在不应该存在的周围className单引号。indexValue

以下clickElementByClassName 处理程序已从您最初发布的内容重写,将打开目标 URL,在这种情况下为“ https://www.google.com ”,等待页面加载,然后单击Google 上的登录按钮主页

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)

查看脚本编辑器中的回复窗格,它显示:

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行,并且在 的每一侧或单引号周围没有空格,就像使用原始编码一样。classNameindexValue

URL我还从处理程序中删除了硬编码,从而使其更加通用和可重用。

如您所见,结果是missing value并且在这种情况下并不是一件坏事,因为在测试中我被带到了登录 -本示例中所需的Google 帐户页面。


推荐阅读