【Python3】「Selenium」をインストールして「Google Chrome」を自動操作してみた!

今回は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」はインストール済みの前提で進めていきます。

続いて、「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

「Chromedriver」と「Google Chrome」のバージョンが合わないことで出るエラーみたいです。今回は、ブラウザのバージョン「107.0.5304.87」に「Chromedriver」を一致させて対処します。

試しに、表示されたバージョン「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」に自動ログインしてみるという利用例をまとめてみました。カスタマイズをすればログイン後に明細を自動でアップロードしたりと手間が省けそうです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次