| 23 | |
| 24 | |
| 25 | class LoadHandler(object): |
| 26 | def __init__(self, browser): |
| 27 | self.browser = browser |
| 28 | |
| 29 | def __getitem__(self, key): |
| 30 | return getattr(self, key) |
| 31 | |
| 32 | def OnLoadStart(self, browser, **_): |
| 33 | browser.ExecuteJavascript(""" |
| 34 | if (document.readyState === "complete") { |
| 35 | LoadHandler_OnDomReady(); |
| 36 | } else { |
| 37 | document.addEventListener("DOMContentLoaded", function() { |
| 38 | LoadHandler_OnDomReady(); |
| 39 | }); |
| 40 | } |
| 41 | """) |
| 42 | |
| 43 | def _OnDomReady(self): |
| 44 | print("DOM is ready!") |
| 45 | self.browser.ExecuteFunction("alert", |
| 46 | "Message from Python: DOM is ready!") |
| 47 | |
| 48 | |
| 49 | if __name__ == '__main__': |