1
2

More than 1 year has passed since last update.

windowsでseleniumを使用してキャプチャを自動でとる

Last updated at Posted at 2023-02-10

テストでキャプチャをとって結果として納品せよ。
と言われたので自動化してみました。

ブラウザによってちょっとずつ違うので備忘録。

ちなみに私はフロントエンドエンジニア(仮)でPythonなんて基本業務では使わないような、なんちゃって野郎です🫠

そもそも、Pythonとは?
seleniumとは?みたいなところはすっ飛ばします。


やりたかったこと

  • pythonで自動でキャプチャをとる
  • ヘッドレスモードでの実行

windows Pythonインストール手順

1:pythonをダウンロード

上記でインストールすると、pipも併せてインストールされる。

2:Python --versionでpythonのインストールができているか確認
3:pip -Vでpipがインストールできているか確認
4:pip install selenium
5:pip listでseleniumがインストールできているか確認

chorme

以下から自分が使用しているchromeのバージョンに一番近いものをクリック

「chromedriver_win32.zip」を選択
DLしたzipを解凍
chromedriver.exeというファイルを、実行ファイルと同階層に配置

ソース

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# ブラウザーを起動
options = Options()
options.add_argument("--headless")  # headlessモードを使用する
options.add_argument("--disable-extensions")  # すべての拡張機能を無効にする。ユーザースクリプトも無効にする
options.add_argument("--incognito")  # シークレットモードで起動する

# オプションを指定しブラウザを起動
driver = webdriver.Chrome(executable_path="./chromedriver.exe", options=options)
driver.set_window_size(1300, 750)

# URLを開きスクショとる
driver.get("https://www.google.com/")
driver.save_screenshot("google.png")

Edge

以下コマンド実行

pip install msedge-selenium-tools

自分のEdgeのバージョンを確認
一番近いバージョンのwebdriverを空以下からインストール

自分のPCのbitに合わせたものをDL
解凍し、exeを実行ファイルと同階層に配置

ソース

from selenium import webdriver
from msedge.selenium_tools import Edge, EdgeOptions

# ブラウザーを起動
options = EdgeOptions()
options.use_chromium = True
options.add_argument("--headless")
options.add_argument("--disable-extensions")  # すべての拡張機能を無効にする。ユーザースクリプトも無効にする
options.add_argument("--incognito")  # シークレットモードで起動する

# edgeDriverの引数にオプションを指定しブラウザを起動
driver_path = "./msedgedriver.exe"
driver = Edge(executable_path=driver_path, options=options)
driver.set_window_size(1300, 750)

# URLを開きスクショとる
driver.get("https://www.microsoft.com/ja-jp/")
driver.save_screenshot("microsoft.png")

chromeとOptionの指定方法が少々異なる。
EdgeでOption指定のためにpip installするのがやや面倒だが、上記でchromiumでの表示ではやりたいことは大体できてる

Firefox

以下から最新のdriverをインストール

この記事制作時は以下が最新。
geckodriver-v0.32.2-win32.zip

解凍して、exeを実行ファイルと同階層に配置

ソース

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
import os

# ブラウザーを起動
options = Options()
options.binary_location = r"C:\Program Files\Mozilla Firefox\firefox.exe"
options.add_argument("--headless")  # headlessモードを使用する

# オプションを指定しブラウザを起動
path = os.getcwd()  # c:\users\user\desktop\test
firefox_driver_path = str(path) + "\driver\geckodriver.exe"
print(firefox_driver_path)
driver = webdriver.Firefox(executable_path=firefox_driver_path, options=options)
driver.set_window_size(1300, 750)

# URLを開きスクショとる
driver.get("https://www.mozilla.org/ja/")
driver.save_screenshot("mozilla.png")

Firefoxの場合、Firefox本体のexeのパスを指定しないとエラーになる👊🏻
解決方法は以下を参考

IE

今回のプロジェクトでは対象外なので除外

Mac Safari

今回のプロジェクトでは対象だけどMacなので別途機会があれば追記します。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2