如何使用 Selenium 和 VBA 向下滚动网页

SIM*_*SIM 0 selenium vba web-scraping selenium-webdriver

我使用 VBA 结合 selenium 编写了一个脚本,从网页中获取所有公司链接,该网页直到滚动到最下方才显示所有链接。但是,当我运行脚本时,我只得到 20 个链接,但总共有 1000 个链接。我听说可以在代码之间执行 javascript 函数来完成此类任务。此时,我不知道如何将其放入我的脚本中。这是我到目前为止所尝试过的:

Sub Testing_scroll()

Dim driver As New WebDriver
Dim posts As Object, post As Object

driver.Start "chrome", "http://fortune.com/fortune500"
driver.get "/list/"

driver.execute_script ("window.scrollTo(0, document.body.scrollHeight);") --It doesn't support here

Set posts = driver.FindElementsByXPath("//li[contains(concat(' ', @class, ' '), ' small-12 ')]")

For Each post In posts
    i = i + 1
    Cells(i, 1) = post.FindElementByXPath(".//a").Attribute("href")
Next post

End Sub
Run Code Online (Sandbox Code Playgroud)

小智 5

根据 SeleniumBasic 中包含的示例,您应该使用

driver.ExecuteScript("window.scrollTo(0, document.body.scrollHeight);")
Run Code Online (Sandbox Code Playgroud)

不是“driver.execute_script”,它是我之前给你的解决方案中的Python等效项:)你必须以同样的方式循环它,直到你在页面上获得了所有1000个链接。