【问题标题】:logic to loop until web page element is not nothing循环直到网页元素不是什么的逻辑
【发布时间】:2023-03-18 04:51:01
【问题描述】:

*在 vba 中使用 HTML 对象库 *(CAS设置为浏览器实例(shdocvw))

Set HTMLDoc = CAS.document.frames("MainFrame").document 'pull the main frame    

Do Until Not HTMLDoc Is Nothing
DoEvents
Loop

我不认为这是正确的,因为它只会设置一次 HTMLDoc,如果它什么都不是,它会一遍又一遍地循环自己,检查它是否是什么,但因为它只被调用一次。恕我直言,更好的方法是检查元素并循环直到元素存在,因为页面可以加载,但我从数据库中提取的元素需要多半秒左右。我只是不确定如何编写循环来继续设置 htmldoc,然后继续检查其中的元素是否不是什么。 (重点是即使我的等待计时器没有等待足够长的时间,它也不应该在元素存在之前继续进行)

【问题讨论】:

    标签: vba


    【解决方案1】:

    如果您想等待特定元素:

        Dim el As Object
    
        Do
            Set el = Nothing
            On Error Resume Next
            Set el = CAS.document.frames("MainFrame").document.getElementById("idHere")
            On Error GoTo 0
            DoEvents
        Loop While el Is Nothing
    

    您可能希望建立一个最长等待时间,因此如果由于某种原因该元素从未出现,您就不会无休止地循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 2022-11-14
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      相关资源
      最近更新 更多