Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Selenium】Webサイトのウインドウの最大化とスクロール方法について


PythonSeleniumを利用してWebサイトへウインドウアクセスする場合には、まずは、対象のウインドウを表示させるところからはじまります。

 

それについては、過去記事で記載しました.

 

 

kuku81kuku81.hatenablog.com

 

 

 

また、その後必要になってくるウインドウ内の要素取得とその操作、属性名から属性値を取得する方法についても過去記事で説明しました。

 

 

kuku81kuku81.hatenablog.com

 

 

kuku81kuku81.hatenablog.com

 

 

今回は表示した画面に関してウインドウの最大化とスクロールをする方法の説明になります。

 

簡単な使用例として載せているものは、Chrome用になりますがドライバーの設定以外はEdgeなどでも同様です。

 

 

 

目次

 

1.ウインドウの最大化方法

 

表示した画面に関してウインドウを最大化する場合には以下のようにmaximize_window()を使用します。

 

driver.maximize_window()

 

また、表示したウインドウをスクロールする場合には以下のようにexecute_script("window.scrollBy(x_pixels, y_pixels);")を使用します。

 

driver.execute_script("window.scrollBy(x_pixels, y_pixels);")

 

Seleniumではexecute_script()を使用することでJavascriptを実行できます。window.scrollBy()メソッドにて引数にスクロールするX方向とY方向のピクセル数を指定することでそれぞれの方向へスクロールすることができます。

以下の例ではGoogle検索画面で"abc"を検索キーワードに指定して検索結果を表示させた後でウインドを最大化してY方向(下方向)に1000ピクセルスクロールさせています。

 

ドライバーの設定はChrome用にて記載しています。

Chrome用のドライバーchromedriver.exeは同じフォルダに入れた状態で実行)

 

from selenium import webdriver
from selenium.webdriver.chrome import service as fs
import os
from selenium.webdriver.common.by import By

path_driver = os.getcwd()+'\chromedriver.exe'
# ドライバー指定でChromeブラウザを開く
chrome_service = fs.Service(executable_path=path_driver)
driver = webdriver.Chrome(service=chrome_service)

#指定したURLに遷移する
driver.get("https://www.google.co.jp")

element = driver.find_element(By.NAME, "q")
element.send_keys("abc")
element.submit()

driver.maximize_window()
driver.execute_script("window.scrollBy(0, 1000);")

# タブを閉じる
driver.close()

driver.quit()

 

2.ウインドウ内でのスクロール方法

 

同様に、ウインドウ内で下方向に最大幅(一番下)までスクロールする場合には

document.body.scrollHeightを使用します。

document.body.scrollHeightは上下方向のピクセル単位での最大幅を表しています。

 

以下の例では、当ブログを表示してウインドウ最大化を行った後に一番下までスクロールしています。

 

from selenium import webdriver
from selenium.webdriver.chrome import service as fs
import os
from selenium.webdriver.common.by import By

path_driver = os.getcwd()+'\chromedriver.exe'
# ドライバー指定でChromeブラウザを開く
chrome_service = fs.Service(executable_path=path_driver)
driver = webdriver.Chrome(service=chrome_service)

#指定したURLに遷移する
driver.get('https://kuku81kuku81.hatenablog.com/')

driver.maximize_window()
driver.execute_script("window.scrollBy(0, document.body.scrollHeight);")

# タブを閉じる
driver.close()

driver.quit()

 

 

以上が、PythonSeleniumを使用してWebサイトのウインドウの最大化とスクロールをする方法とその実施例になります。