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

时间:2017-07-04 22:28:35

标签: vba selenium selenium-webdriver web-scraping

我已经编写了一个使用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

1 个答案:

答案 0 :(得分:1)

根据SeleniumBasic附带的示例,您应该使用

$menu .= $this->{$item['type']}($item);

不是“driver.execute_script”,它是来自the previous solution I gave you的python等价物:)你必须以相同的方式循环它,直到你在页面上获得所有1000个链接。