3

使用Python和Selenium時,我遇到了滾動到網頁頂部的問題。使用Selenium在Python中滾動頁面頂部

當頁面由於某種原因加載時被帶到頁面的底部(這是由於被修復)。但是,當我嘗試滾動到頂部時,它不起作用。

我嘗試以下:

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

而且

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

我也曾嘗試定位元件然後滾動到它:

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

上述scrollIntoView()代碼作品當滾動到元素。但是,它不起作用。

我試過這個運行的Chrome驅動程序和PhantomJs。

有什麼建議嗎?

+0

你有沒有嘗試在你的'execute_script'裏放置'window.scrollTo(0,0)''? – Mangohero1

+1

@ mangoHero1我試過'self.driver.window.scroll(「window.scroll(0,0);」)',腳本顯示如下錯誤: _self.driver.window.scroll(「window.scroll (0,0);「) AttributeError:'WebDriver'對象沒有屬性'window'_ – cmplfore

+0

@ mangoHero1對不起,我看到了錯字糾正它,並執行以下操作:'self.driver.execute_script(」window.scroll(0 ,0);「)'仍然沒有向上滾動。 – cmplfore

回答

2

你可以考慮來定位HTML DOM第一要素,那麼我們就可以scroll元素爲Viewport如下:

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

您可以簡單地使用CTRL + HOME鍵。它將滾動到頁面的頂部。

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