LoginSignup
31
21

More than 5 years have passed since last update.

Seleniumでchromeブラウザをスクロールする

Last updated at Posted at 2018-03-27

概要

Seleniumのテストでブラウザをスクロールする場合に調べた内容をメモしておく。

要素指定

要素を指定して移動する。
※ 位置の微調整のために、offset引数を用意しています
※ スクロールについてくるナビゲーションなどがあった場合、位置の微調整が必要

メソッド定義

class Browser:
    def scrollByElemAndOffset(self, element, offset = 0):

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

        if (offset != 0):
            script = "window.scrollTo(0, window.pageYOffset + " + str(offset) + ");"
            self.driver.execute_script(script)

使用例

browser = Browser()
element = browser.driver.find_element_by_id('some_id')
browser.scrollByElemAndOffset(element, -10)

高さ指定

高さを指定して移動する。

メソッド定義

class Browser:
    def scrollByY(self, height):
        self.driver.execute_script("window.scrollTo(0, " + str(height) + ");")

使用例

browser = Browser()
element = browser.driver.find_element_by_id('some_id')
browser.scrollByY(element.location_once_scrolled_into_view['y'])

まとめ

高さ指定の場合、広告など遅れて後から表示されるものがあった場合、位置がズレたりするみたい。
要素指定で微調整した方が、あまりズレなくて良さそう・・・

参考サイト

31
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
21