web-dev-qa-db-ja.com

Python Seleniumを使用してページの上部にスクロールする

PythonおよびSeleniumを使用すると、Webページの上部へのスクロールで問題が発生します。

何らかの理由でページが読み込まれると、ページの下部に移動します(これは修正される予定です)。ただし、一番上までスクロールしようとしても機能しません。

私は次を試しました:

self.driver.execute_script("scroll(0, -250);")

そして

self.driver.execute_script("scroll(0, 0);")

また、要素を見つけてスクロールしました:

self.driver.execute_script("arguments[0].scrollIntoView()", element)

上記のscrollIntoView()コードは、要素までスクロールダウンするときに機能します。ただし、上にスクロールしても機能しません。

私はこれを実行してみましたChrome Driver and PhantomJs。

助言がありますか?

9
cmplfore

最初にHTML DOMで要素を見つけることを検討できます。次に、scrollで要素を Viewport 次のとおり:

element = driver.find_element_by_xpath("element_xpath")
self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)
3
DebanjanB

単にCtrl + Homeキーを使用できます。ページの上部までスクロールします。

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)
13
SunilThorat

これを試してください:

driver.execute_script("document.querySelector('div[role=dialog] ul').parentNode.scrollTop=1e100")
0
hamed baziyad

selenium import webdriverから

t=10
while t:

#if you want to scroll to the end of the page,use this

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


#if you want to scroll down upto some level use this, here i used "1000" you may vary 
#it according to your use

driver.execute_script("scrollBy(0,+1000);")
    sleep(3)


#if you want to scroll some level up, use this,again i used here "-500" you may vary 
#according to your use 

driver.execute_script("scrollBy(0,-500);")
sleep(3)
t=t-1       # it`s a part of the loop

これはきっとあなたを助けます:)

0
Sanyam Gupta
from Selenium import webdriver
from Selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("__")

#to scroll try use the following command
driver.execute_script("scrollBy(0,250);")

それが動作します !!

0
Vyr