Applescript:等待页面加载到chrome

时间:2017-02-17 07:44:03

标签: javascript google-chrome applescript document-ready

tell application "Safari"
        repeat until (do JavaScript "document.readyState" in tab 2 of window 1) is "complete"
        end repeat
    end tell
end if

我该如何使用Chrome?

2 个答案:

答案 0 :(得分:1)

你应该能够做到

tell application "Google Chrome"
repeat until (execute tab 1 of window 1 javascript "document.readyState" is "complete")
end repeat
    execute tab 1 of window 1 javascript "document.readyState"
end tell

但您可能会有返回"互动"永远,或者很长一段时间。

使用AppleScript执行此操作应该是:

tell application "Google Chrome"
    repeat until (loading of tab 1 of window 1 is false)
        1 + 1 --just an arbitary line
    end repeat
    loading of tab 1 of window 1 --this just returns final status
end tell

但是,说实话,我觉得它很可疑。我的页面中有一个非常简洁的页面(http://www.crgreen.com/boethos/boethos.html),它适用于此,但对于大多数页面(我已尝试过雅虎,macupdate,bbc新闻,jedit.org等等。我没有得到" loading = true&#34 ;,永远。它可能是错误的。

答案 1 :(得分:1)

对于 Chromium 浏览器(Google Chrome、Brave 浏览器、Microsoft Edge、Opera、Vivaldi 等),您不需要 JavaScript 解决方法,因为它们已适当支持检查标签是否仍在加载。

在 AppleScript 中:

tell application "Google Chrome" to return loading of tab 2 of window 1

在 JavaScript for Automation (JXA) 中:

Application('Google Chrome').windows[1].tabs[2].loading()