webentwicklung-frage-antwort-db.com.de

In Python mit Selenium zum Anfang der Seite scrollen

Ich habe Probleme beim Scrollen an den Anfang der Webseite, wenn Sie Python und Selenium verwenden. 

Wenn die Seite aus irgendeinem Grund geladen wird, werden Sie zum unteren Rand der Seite geführt (dies sollte behoben werden). Wenn ich versuche, nach oben zu scrollen, funktioniert es nicht. 

Ich habe folgendes versucht:

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

Und

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

Ich habe auch versucht, das Element zu finden und danach zu scrollen:

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

Der obige scrollIntoView () - Code funktioniert, wenn Sie zu dem Element scrollen. Es funktioniert jedoch nicht beim Scrollen nach oben.

Ich habe versucht, Chrome Driver und PhantomJs auszuführen. 

Irgendwelche Vorschläge?

6
cmplfore

Sie können in Betracht ziehen, das Element zuerst in HTML DOM zu lokalisieren. Dann können Sie scroll das Element in Viewport wie folgt eingeben:

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

Sie können einfach die Tasten STRG + HOME verwenden. Es wird an den Anfang der Seite verschoben.

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)
11
SunilT

Bitte versuchen Sie das: 

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

von 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

Das wird dir sicherlich helfen :)

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);")

Es wird klappen !!

0
Vyr