IE 自动化通过 VBA - 等待元素消失

IE automation through VBA - wait for element to disappear

我正在填写一个网络表单,其中有一个内置的预加载器动画(不影响浏览器状态),我试图让我的脚本等待它消失,然后才消失继续填写字段。

目前我正在使用这个代码:

 Do
      Set el = Nothing
      On Error Resume Next
      Set el = objIE.document.getElementsByClassName("preloader__loader")(0)
        On Error GoTo 0
        DoEvents
        Sleep 2000
    Loop While Not (el Is Nothing)

    objIE.document.getElementsByName("button_submit")(0).Click

不知道为什么,但有时此代码无法正常工作并且未按下提交按钮 (button_submit)。

我想尽可能避免等待语句,因为它们在页面加载缓慢时不可靠。

脚本是否有更好的方法来等待特定元素(在本例中 "preloader__loader")消失?

提前致谢。

所以,这就是我所做的,代码的第一部分是等待 Preloader 出现,当它出现时,第二部分是等待 Preloader 消失。

这个解决方案目前看来效果很好,我希望如果页面加载速度比预期慢,不会有任何其他问题:)

      Do
        Set el = Nothing
        On Error Resume Next
        Set el = objIE.document.getElementsByClassName("preloader__loader")(0)
        On Error GoTo 0
        DoEvents
        Sleep 500
    Loop While el Is Nothing

      Do
        Set el = Nothing
        On Error Resume Next
        Set el = objIE.document.getElementsByClassName("preloader__loader")(0)
        On Error GoTo 0
        DoEvents
        Sleep 500
    Loop While Not (el Is Nothing)