1

我有一个网站,当我向下滚动时会生成更多产品。与其他网站不同,在 firebug 控制台中找不到任何内容。所以,我正在使用 selenium 来模拟浏览器。我已经让它工作了,但使用了 Firefox 驱动程序。但是,由于我托管在命令行上运行的 Web 服务器,因此我使用的是 HTMLUNIT。有人可以告诉我如何使用 HTMLUNIT 滚动页面吗?这是到目前为止的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Remote("http://127.0.0.1:4444/wd/hub",desired_capabilities=webdriver.DesiredCapabilities.HTMLUNITWITHJS)
browser.get("http://www.somewebsite.com/")
x = browser.find_elements_by_xpath("//div[@id='containeriso3']/div/a[1]")
hrefs = [i.get_attribute('href') for i in x]
print len(hrefs)
time.sleep(2)
browser.execute_script("scroll(0, 2500);")
time.sleep(2)
x = browser.find_elements_by_xpath("//div[@id='containeriso3']/div/a[1]")
hrefs = [i.get_attribute('href') for i in x]
print len(hrefs)

谢谢你。

4

1 回答 1

7

您可以使用 JavaScript 滚动。从文档

您可以使用 execute_script 方法在加载的页面上执行 javascript。因此,您可以调用 JavaScript API 滚动到页面的底部或任何其他位置。

这是滚动到页面底部的示例:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

DOM 中的 window 对象有一个 scrollTo 方法可以滚动到打开的窗口的任意位置。scrollHeight 是所有元素的通用属性。document.body.scrollHeight 将给出整个页面的高度。

于 2013-02-12T15:49:14.750 回答