こんにちは
島村竜一です。
ここのところ社内の自動化をするためにPythonでプログラムを書くことが多くなりました。
社内の事務などの自動化をするためにPythonとSeleniumをセットで使用することが非常に多いです。
Selenium以外にもパソコン画面を操作するためものはありますが安定して使えるのはやっぱりSeleniumになります。
そんなSeleniumを使っているときにうまくいったかどうか確認したい時があります。
そんな時にお勧めなのが画面のスクショを撮るということです。
なにげに画面のスクショがあると便利です。
今回の記事は画面のスクショの取り方について解説をさせていただました。
PythonとSeleniumによる業務自動化に興味がある方
Pythonをとりあえずさわってみたい方が対象となっています。
実行した結果は必ず画面のスクショをとっておこう
では実際のソースから解説をさせていただきますね。
util.py
# util.py
import os
from datetime import datetime
class Util:
# 画面のスクリーンショットを撮る
@staticmethod
def take_screenshot(driver, directory="log", prefix="screenshot"):
if not os.path.exists(directory):
os.makedirs(directory)
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
screenshot_path = os.path.join(directory, f"{prefix}_{timestamp}.png")
driver.save_screenshot(screenshot_path)
print(f"スクリーンショットが {screenshot_path} に保存されました。")
return screenshot_path
uitil.pyなどよく使うソースはこんな感じで別ファイルにまとめておくとわかりやすくなります。
ポイントは3つです。
①
@staticmethodを関数(take_screenshot)の前に書くことにより呼び出し方が簡単になります。
具体的な呼び出し方はこの後に書きます。
②
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
上記の画像のようにscreenshot_20240616_123820.pngと
ファイル名に日付と時間が入ることにより管理が楽になります。
③
driver.save_screenshot(screenshot_path)
今回の画面のスクショの機能はseleniumを利用したものになります。
seleniumのwebdriverを使い
driver.save_screenshot(screenshot_path)
と実装することにより画面のスクショを保存することができます。
screenshot_pathには画像ファイルを保存する場所を指定してくださいね。
このプログラムを外部から実行する時は
from util import Util
Util.take_screenshot(driver)
とやることでスクショを撮ることができます。
【参考】Python関連記事
本サイトではPython,UiPathなどを使い業務効率化の事例、プログラミング例を紹介しています。
良かったら読んでくださいね。
https://goodsystem.jp/ai/installing_python_20240610.html
https://goodsystem.jp/ai/installingvisualstudiorecommendedfordevelopmentpart1.html
https://goodsystem.jp/ai/vscodeextensionsusefulforpythondevelopmen.html
まとめ:画面のスクショはエラーが発生した時などさまざまな時に役立ちます。
プログラムがキチンと動作したかどうかは必ず確認する必要があります。
またユーザーが使っていると想定外のことが発生する可能性があります。
そんなときお客様からクレームがきて慌てないようにしましょうね。
今回のようなコードを元にエラーが発生しそうなところ、
大事なところは必ず画面のスクショを撮るようにしましょう。
そうすることによりエラーの発生を早く見つけることができます。
ここまで読んでくださってありがとうございます。
Python開発、AI開発に興味のある会社様、ぜひメルマガに登録してみてくださいね。
お役に立つ情報やセミナー情報などをお届けます。
また次のブログでお逢いしましょう。
仕事の生産性をあげるためさまざまな方法を試しました。その結果UiPathにたどり着き現在UiPathを使った業務効率化の開発、講師の仕事をしています。
講師、開発などの相談はお問い合わせからお願いします。