今回はMacOS上で、「Selenium」を導入してChromeの自動操作をテストしてみました。
動作イメージは以下の通りです。
目次
動作環境
動作環境は以下の通りです。
- MacOS M2
- Google Chrome 107.0.5304.87
- Python 3.10.6
- ChromeDriver 107.0.5304.62.0
- Selenium 4.6.0
各ツールのインストール
「Python 3」はインストール済みの前提で進めていきます。
【Python】M2 Mac OSで「Python3」環境を設定するときの手順をまとめてみた!
「homebrew」 のインストール 「Python3」を使うために「homebrew」を先にインストールします。10分から15分くらいかかることがあります。 $ /bin/bash -c "$(curl…
続いて、「Selenium」を導入します。
「Selenium」のインストール
「Python」が導入されている環境であれば、「Selenium」をpipでインストール可能です。
% pip install selenium
Collecting selenium
Downloading selenium-4.6.0-py3-none-any.whl (5.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 9.4 MB/s eta 0:00:00
・・・・
「ChromeDriver」のインストール
こちらも、Pythonが入っていればpipでインストールが可能です。
% pip install chromedriver-binary
・・・
Successfully installed chromedriver-binary-108.0.5359.22.0
以上でツールのインストールは完了です。
「Selenium」の動作テスト
「Selenium」が動作するか、テストをしてみます。
以下のファイルを任意のフォルダに作成します。
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
# 接続先URL
url = "https://www.google.co.jp/"
options = Options() # シークレットモードで起動
options.add_argument('--incognito')
driver = webdriver.Chrome(service=Service('chromedriver_105.exe'), options=options) # Chrome Driver
driver.implicitly_wait(10) # 待機時間の設定(秒)
driver.get(url) # URLを開く
driver.maximize_window() # ウィンドウを最大化
# 検索ワードに「Yahoo」と入力
driver.find_element("xpath", '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input').send_keys("Yahoo")
# 「Google検索」ボタンをクリック
driver.find_element("xpath", '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]').click()
# 5秒待機
time.sleep(5)
上記のファイルを作成して、Pythonで実行します。
python test.py
テスト実行でエラーが出てしまった…
テスト実行で、以下のようなエラーが出てしまった場合は対処が必要です。
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 108
Current browser version is 107.0.5304.87 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
試しに、表示されたバージョン「107.0.5304.87」でインストールしようとしてみると。
% pip install chromedriver_binary==107.0.5304.87
エラーになってしまいました…。
どうやら、「107.0.5304」までは一緒で、最後の2桁以降のバージョンは「Chromedriver」と「Google Chrome」で異なるようです。リストの中から、「107.0.5304.XX」のバージョンを探して、再度実行。
% pip install chromedriver_binary==107.0.5304.62.0
・・・
Successfully installed chromedriver_binary-107.0.5304.62.0
無事にインストールが完了しました!
再度、テストを実行してみてください。
その他の利用例
実際の利用ケースとして、「Selenium」を使って「freee」に自動ログインしてみるという利用例をまとめてみました。カスタマイズをすればログイン後に明細を自動でアップロードしたりと手間が省けそうです。
【Python3】「Selenium」で「freee」に自動ログインをしてみた!
今回は、「Selenuim」を使って、「freee 会計」に自動でログインするプログラムを作ってみました。ログインをしたら、スクリーンショット撮影してブラウザを終了するま…