我已经编写了一个使用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
答案 0 :(得分:1)
根据SeleniumBasic附带的示例,您应该使用
$menu .= $this->{$item['type']}($item);
不是“driver.execute_script”,它是来自the previous solution I gave you的python等价物:)你必须以相同的方式循环它,直到你在页面上获得所有1000个链接。