Seleniumでブラウザを自動操作している際に、ある要素のスクリーンショットを撮影し保存します。
撮影したスクリーンショットを保存するためにライブラリはPillowを使用します。
特定の要素のスクリーンショットを撮影・保存する方法
さっそく答えから書いておきます。
from selenium import webdriver
from PIL import Image
import io
# Selenium WebDriverのインスタンスを作成
driver = webdriver.Chrome()
# 要素までスクロールするためのJavaScriptコード
scroll_to_element_script = """
var element = arguments[0];
element.scrollIntoView(true);
"""
# 要素を特定して取得
element = driver.find_element_by_css_selector("Your_CSS_Selector")
# 要素までスクロールする
driver.execute_script(scroll_to_element_script, element)
# 要素のスクリーンショットを撮影
element_screenshot = element.screenshot_as_png
# スクリーンショットをPillowのImageオブジェクトに変換
image = Image.open(io.BytesIO(element_screenshot))
# 画像を保存
image.save("screenshot.png")
# WebDriverを終了
driver.quit()
“Your_CSS_Selector”の部分にスクロールさせたい要素を特定するためのCSSセレクターに置き換えてください。
classでは特定不可な場合は、xpathなどで特定してください。
要素までスクロールしないと上手くスクショが撮れなかったので、スクロールの処理を入れています。
このコードの説明
¥2,455 (2024/05/19 16:30時点 | Amazon調べ)
ポチップ