当scrollBy到达网页底部时如何退出循环?

SIM卡

我已经使用 IE 在 VBA 中编写了一个脚本来自动到达网页的底部。网页以这样的方式显示它的内容,如果我向下滚动更多的产品变得可见。.scrollBy在我的脚本中使用来处理延迟负载。

我不明白如何在没有更多新产品加载时停止滚动 - 我.scrollByDo循环中使用当滚动完成并且浏览器到达网页底部时,如何退出循环?提前感谢您提供任何解决方案。

这是我迄今为止尝试过的:

Sub HandleLazyload()
    Const URL As String = "https://www.inc.com/profile/sumup-payments-limited"
    Dim IE As New InternetExplorer, HTML As HTMLDocument, post As Object

    With IE
        .Visible = True
        .navigate URL
        While .Busy = True Or .readyState < 4: DoEvents: Wend
        Set HTML = .document
    End With

    Do
        HTML.parentWindow.scrollBy 0, 99999
        Application.Wait Now + TimeValue("00:00:03")
        Set post = HTML.getElementsByTagName("article")
    Loop         ''I wish to break out of this loop when all the scrolling is done
    IE.Quit
End Sub
哈尔

尝试以下我使用排名来确定循环的终止/退出的地方。

Option Explicit

Public Sub HandleLazyload()
    Const URL As String = "https://www.inc.com/profile/sumup-payments-limited"
    Dim IE As New InternetExplorer, HTML As HTMLDocument
    With IE
        .Visible = True
        .navigate URL
        While .Busy = True Or .readyState < 4: DoEvents: Wend
        Set HTML = .document
    End With

    Dim rank As Long, item As Long
    item = 1

    Do While Err.Number = 0
        HTML.parentWindow.scrollBy 0, 99999
        Application.Wait Now + TimeSerial(0, 0, 1)
        On Error GoTo errhand
        rank = Split(HTML.querySelectorAll(".rank dt ~ dd")(item).innerText, "#")(1)
        item = item + 1
    Loop

errhand:
    Err.Clear
    Debug.Print "Stopped at rank " & rank

    'Your other code
    'IE.Quit
End Sub

笔记:

CSS 选择器:

如果您想了解有关 CSS 选择器的更多信息

下方目标的所有元素,其中的类名是选择rank,然后有兄弟元素dtdd内。

HTML.querySelectorAll(".rank dt ~ dd")(item)

目标 HTML:

HTML 元素

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

到达iFrame底部时不滚动网页

来自分类Dev

无法到达网页底部

来自分类Dev

用户到达底部时如何显示FloatingActionButton?

来自分类Dev

当到达底部时如何阻止UIScrollView滚动

来自分类Dev

到达底部时如何检测有溢出的表[jQuery]

来自分类Dev

用户到达底部时如何加载新页面/ URL

来自分类Dev

到达div元素的底部时,如何使li元素正确上升?

来自分类Dev

滚动时如何检查是否到达页面底部

来自分类Dev

用户到达底部时如何加载新页面/ URL

来自分类Dev

当ffmpeg到达命名管道的末尾时,如何阻止ffmpeg退出?

来自分类Dev

到达页面底部时的toggleClass

来自分类Dev

到达屏幕底部时的通知

来自分类Dev

如何判断到达页面底部?

来自分类Dev

在网页底部时如何避免AJAX跳转

来自分类Dev

满足我的条件时如何退出循环?

来自分类Dev

自动滚动到达页面底部后,如何在页面中循环url数组?

来自分类Dev

网页的页脚未到达较短页面上的页面底部

来自分类Dev

到达选择0时,如何停止循环回到菜单

来自分类Dev

到达选项0时,我如何停止循环回到菜单

来自分类Dev

退出循环时无法退出

来自分类Dev

每次到达页面底部时加载内容

来自分类Dev

到达页面底部时显示页脚

来自分类Dev

使滑动文本到达div底部时消失

来自分类Dev

每次到达页面底部时加载内容

来自分类Dev

到达底部时加载更多图像

来自分类Dev

AngularJS:当滚动到达div中滚动条的底部时如何触发事件?

来自分类Dev

当内容到达div的底部时如何将内容打包到div中以向右移动

来自分类Dev

背景图像到达底部时如何停止背景位置变化?

来自分类Dev

Flexbox:到达页面底部时,如何在Flexbox中包装项目?

Related 相关文章

热门标签

归档