Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのSelenium WebDriverで特定要素のスクリーンショットを撮影する方法

Selenium WebDriverを使用すると、ページ全体ではなく、特定の要素だけを切り取った「部分的なスクリーンショット」を簡単に撮影できます。

特定の要素のスクリーンショットを取得するには、まずid、name、class名などのロケーター(XPathやCSSセレクターなど)を使って、対象となるWeb要素を特定する必要があります。

次に、そのWeb要素に対してscreenshot()メソッドを呼び出し、引数として拡張子付きの画像ファイル名を渡します。これにより、プロジェクトフォルダ内にその要素のスクリーンショットを含む新しい画像ファイルが作成されます。

構文

l=driver.find_element_by_xpath("//img[@title='Tutorialspoint']")
l.screenshot("logo.png")

ここでは、Webページに表示されているロゴ画像のスクリーンショットを取得する例を見てみましょう。

PythonのSelenium WebDriverで特定要素のスクリーンショットを撮影する方法

コード実装例

from selenium import webdriver
driver = webdriver.Chrome (executable_path="C:\\chromedriver.exe")
driver.maximize_window()
driver.get("https://www.tutorialspoint.com/index.htm")
# スクリーンショットを撮影する対象の要素を特定
l=driver.find_element_by_xpath("//img[@title='Tutorialspoint']")
# screenshotメソッドでスクリーンショットを撮影
l.screenshot("logo.png")

実行結果

コードを実行すると、プロジェクトフォルダに「logo.png」というファイルが作成され、指定した要素(この例ではロゴ画像)のスクリーンショットが保存されます。

PythonのSelenium WebDriverで特定要素のスクリーンショットを撮影する方法

補足:Selenium 4以降の書き方

なお、Selenium 4以降ではfind_element_by_xpath()は非推奨(deprecated)となっています。最新バージョンでは、find_element()メソッドとByクラスを組み合わせた以下の書き方が推奨されています。

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.tutorialspoint.com/index.htm")

# By.XPATHを使って要素を特定
l = driver.find_element(By.XPATH, "//img[@title='Tutorialspoint']")
l.screenshot("logo.png")

この方法でも同様に、指定した要素だけのスクリーンショットをPNG形式で保存できます。ボタンやフォーム、テーブルなど、任意の要素に応用可能なので、UIテストの証跡取得やデバッグ作業に非常に便利です。

  1. Macでスクリーンショットを撮る方法!覚えておきたいキーボードショートカット完全ガイド

    WindowsからMacに乗り換えたばかりの方は、Macでのスクリーンショットの撮り方に戸惑うかもしれません。確かに、MacのキーボードにはPrint Screenキーがありません。しかし、代わりに使えるキーボードショートカットがいくつも用意されています。正しいショートカットを使えば、画面全体、単一のウィンドウ、あるいは画面の一部だけを自由にキャプチャできます。 macOS Mojave以降にアップグレードしている場合は、「スクリーンショット」アプリを使って画面のさまざまな部分をキャプチャしたり、画面の動画録画まで行えます。このアプリは「アプリケーション」フォルダ内の「ユーティリティ」セクシ

  2. Windows PCで部分スクリーンショットを撮る方法|手動・自動のやり方を徹底解説

    Windowsパソコンで部分的なスクリーンショットを撮るには、手動と自動の2つの方法があります。撮影と同時に画像を編集したい場合は、「TweakShot Screen Capture」がおすすめです。このソフトウェアを使えば、部分スクリーンショットの撮影はもちろん、そのまま編集まで行えます。 現代では情報の流れが非常に速く、テクノロジーが重要な役割を果たしています。オンラインで仕事や学習をする人が増える一方で、メモを取るのに苦労している方も少なくありません。そこで注目されているのが、スクリーンショットの撮影や画面録画です。 同じようにお悩みの方にとって、この記事はきっと役立ちます。ここでは