1

下にスクロールすると、より多くの製品を生成するWebサイトがあります。他のWebサイトとは異なり、firebugコンソールには何も見つかりません。だから、私はブラウザをシミュレートするためにセレンを使用しています。私はそれを動作させましたが、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のウィンドウオブジェクトには、開いているウィンドウの任意の位置にスクロールするためのscrollToメソッドがあります。scrollHeightは、すべての要素に共通のプロパティです。document.body.scrollHeightは、ページの本文全体の高さを示します。

于 2013-02-12T15:49:14.750 に答える