我正在运行以下Autohotkey代码,该代码在美好的日子里一直有效,大部分时间都在糟糕的日子里运行(慢速的互联网和/或计算机)。
079: Sleep,500
081: ie_win.document.all.lbContentIframe.contentWindow.document.all.btnOkId.click()
082: Sleep,500
083: While,ie_win.document.all.lbContentIframe.contentWindow.document.readyState <> "complete"
084: Sleep,100
我得到的错误是第83行
描述:访问被拒绝。
HelpFile:C:\ Windows \ System32 \ mshtml.hlp
具体来说:文件
是否因为尚未加载lbContentIframe Iframe文档?以前我试过
while !ie_win.document.getelementbyid("lbContentIframe")
sleep, 100
我没有因为该行而收到任何错误。每次Iframe可能刷新之前我是否需要这样做才能检查它是否通过readyState属性加载完成?
此外,一旦我收到上述错误,无论我尝试多少次,它都不会再次开始工作。这几乎就像ie_win句柄被破坏了一样。
答案 0 :(得分:1)
尝试
While ie_win.readyState!=4 || ie_win.document.readyState!="complete" || ie_win.busy
答案 1 :(得分:1)
我发现在几个交互式网页上,我必须根据我知道存在的值编写自定义等待函数,并在整个页面完全加载时填充。
尝试这样的事情:
ComObjError(false)
While (value == "") {
value := ie_win.document.getElementsByClassname("YourElement")[1].innerText
Sleep 100
}
ComObjError(true)