通过硒VBA导航到页面

时间:2020-03-25 12:50:37

标签: excel vba selenium

我正在尝试使用硒VBA在页面之间导航。这是我在检查html页面时得到的

<div class="paging bottom" style="cursor: pointer;"><a data-page="1" href="#" class="prev"><div id="triangle-left"></div> Prev</a><span>1</span><a data-page="2">2</a><a data-page="3">3</a><a data-page="4">4</a>..<a data-page="5">5</a><a data-page="2" href="#" class="next">Next <div id="triangle-right"></div></a></div>

我很困惑如何引用每个页面。检查href属性中的#符号时,我发现所有页面都具有相同的链接 https://www.file-up.org/?op=my_files# 没有指示如何在页面之间进行更改。我如何确定此分页部分中的页面总数?

我可以这样部分解决

        For i = 1 To 5
        Application.Wait Now + TimeValue("00:00:03")
        p = p + 1

        Set fStream = New ADODB.Stream
        With fStream
            .Charset = "UTF-8"
            .Open
            .WriteText bot.PageSource
            .SaveToFile Environ("USERPROFILE") & "\Desktop\" & p & ".mhtml", 2
            .Close
        End With

        On Error Resume Next
        Set btn = .FindElementByCss("a.next")
        If btn.IsPresent = True Then
            btn.Click
        End If
        On Error GoTo 0
    Next i

但是有两个注意事项。首先,我必须在循环行中输入总页数 还有一点,如何使代码等到页面加载完毕并保存html页面源代码?那一点使我感到困惑。

1 个答案:

答案 0 :(得分:1)

您可以使用以下xpath来获取页数。

//a[@data-page][last()-1]

enter image description here