PythonでSeleniumを利用してWebサイトへウインドウアクセスする場合には、まずは、対象のウインドウを表示させるところからはじまります。
その後、画面内の要素の取得などを行いますがそれらについては、過去記事で記載しました。
今回は表示した画面に関してウインドウの最大化とスクロールをする方法の説明になります。
簡単な使用例として載せているものは、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用にて記載しています。
(selenium ver.4.6以降の場合)
from selenium import webdriver from selenium.webdriver.common.by import By
######################################################################
driver = webdriver.Chrome() ######################################################################
#指定した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()
ドライバーの設定方法の違いだけになりますがSelenium ver.4.6以前の場合の例は、以下に載せています。
2.ウインドウ内でのスクロール方法
同様に、ウインドウ内で下方向に最大幅(一番下)までスクロールする場合には
document.body.scrollHeightを使用します。
document.body.scrollHeightは上下方向のピクセル単位での最大幅を表しています。
以下の例では、当ブログを表示してウインドウ最大化を行った後に一番下までスクロールしています。
from selenium import webdriver from selenium.webdriver.common.by import By
######################################################################
driver = webdriver.Chrome() ######################################################################
#指定したURLに遷移する driver.get('https://kuku81kuku81.hatenablog.com/') driver.maximize_window() driver.execute_script("window.scrollBy(0, document.body.scrollHeight);") # タブを閉じる driver.close() driver.quit()
以上が、PythonでSeleniumを使用してWebサイトのウインドウの最大化とスクロールをする方法とその実施例になります。