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用にて記載しています。
(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()
以上が、PythonでSeleniumを使用してWebサイトのウインドウの最大化とスクロールをする方法とその実施例になります。