2013-02-06 56 views
1

我有一個網站,當我向下滾動時會生成更多產品。與其他網站不同,螢火蟲控制檯中沒有任何發現。所以,我使用硒來模擬瀏覽器。我已經使它工作,但與Firefox驅動程序。但是,因爲我託管在命令行上運行的Web服務器,所以我使用的是HTMLUNIT。有人能告訴我如何使用HTMLUNIT滾動頁面嗎?這裏是直到現在的代碼:Selenium HTMLUNIT Python滾動頁面

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) 

謝謝。

回答

7

您可以使用JavaScript進行滾動。從docs

您可以使用execute_script方法在加載的頁面上執行javascript。 因此,您可以調用JavaScript API滾動到頁面的底部或任何其他位置。

下面是一個例子滾動到一個頁面的底部:在DOM

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

該窗口對象具有scrollTo方法滾動到打開的窗口的任何位置。 scrollHeight是所有元素的公共屬性。 document.body.scrollHeight將給出整個頁面的高度 。

+0

你可以在div上做一個溢出設置的滾動條而不是瀏覽器嗎? – Nickel

+0

是的。你將不得不修改javascript。 – That1Guy

+0

這裏你去:) http://stackoverflow.com/a/270628/2401628 – Loknar