【问题标题】:Add timeout to procedure waiting for Internet Explorer为等待 Internet Explorer 的过程添加超时
【发布时间】:2016-01-19 12:16:51
【问题描述】:

我在我的 VBScript 中调用了这个 sub,它等待 Internet Explorer 完成加载,然后再移动到下一行:

Sub Wait
   Do While objIE.ReadyState < 4 Or objIE.Busy
      WScript.Sleep 200
   Loop
End Sub

效果很好。但是,偶尔出现网络连接问题时,网页会卡在加载阶段,脚本会因此继续等待。

所以我的问题是:
我可以设置一个超时,这样当我调用这个子时,它会等待一个指定的时间,例如5 分钟,在退出脚本之前?

【问题讨论】:

  • 您可以添加一个计时器变量并检查循环中设置的间隔。如果达到阈值,则打破循环并继续前进?
  • 与其等待一些修复时间,为什么不使用 vbscript 检查连接是否存在?这是示例 -visualbasicscript.com/…

标签: vbscript


【解决方案1】:

您可以像这样为您的程序添加时间限制:

Sub Wait
   limit = DateAdd("n", 5, Now)
   Do While (objIE.ReadyState < 4 Or objIE.Busy) And Now < limit
      WScript.Sleep 200
   Loop
End Sub

【讨论】:

    【解决方案2】:

    设置 oIE = CreateObject("InternetExplorer.application")

        oIE.Visible = True
        oIE.navigate ("http://technopedia.com")
    
    
    
    Do While oIE.Busy Or oIE.ReadyState <> 4: WScript.Sleep 100: Loop  
    
    
                                  <<<<< OR >>>>>>
    
    Do While oIE.ReadyState <> 4: WScript.Sleep 100: Loop
    

    还有什么建议吗??

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多