Seleniumでexecutable_pathが非推奨の警告を解決する方法
問題: executable_pathが非推奨という警告
Selenium 4.xを使用してPythonで自動化スクリプトを実行すると、次のような警告メッセージが表示されます:
Demo.py:7: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(ChromeDriverManager().install())
この警告は、Selenium 4でexecutable_path
パラメータが廃止され、代わりにService
オブジェクトを使用するように変更されたため発生します。
解決方法
方法1: Serviceオブジェクトを使用する(推奨)
Selenium 4では、Service
クラスを使用してWebDriverをインスタンス化します:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# WebDriverのパスをServiceオブジェクトで指定
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("https://www.google.com")
方法2: オプションを追加したServiceオブジェクトの使用
ブラウザのオプションを設定する場合:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
# オプション設定
options = Options()
options.add_argument("--start-maximized") # 最大化で起動
# WebDriver設定
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
driver.get("https://www.google.com")
方法3: 手動でパスを指定する場合
手動でWebDriverのパスを指定する場合:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 手動でWebDriverのパスを指定
service = Service(r"C:\path\to\chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("https://www.google.com")
Selenium Managerの利用(Selenium 4.6.0以降)
Selenium 4.6.0以降では、Selenium Managerが組み込まれており、外部ライブラリなしで自動的にWebDriverを管理できます:
from selenium import webdriver
# Selenium Managerが自動的にWebDriverを設定
driver = webdriver.Chrome()
driver.get("https://www.google.com")
便利な機能
Selenium Managerは自動的に適切なWebDriverをダウンロードして設定するため、webdriver-manager
などの外部ライブラリが不要になります。
Firefoxの場合
Firefoxを使用する場合の設定方法:
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager
service = Service(GeckoDriverManager().install())
driver = webdriver.Firefox(service=service)
driver.get("https://www.google.com")
必要なパッケージのインストール
以下のコマンドで必要なパッケージをインストールしてください:
pip install -U selenium
pip install webdriver-manager
まとめ
Selenium 4では、executable_path
パラメータが非推奨となり、代わりにService
オブジェクトを使用することが推奨されています。最新のSelenium(4.6.0以降)では、組み込みのSelenium Managerを利用することで、より簡単にWebDriverを管理できます。
注意
古いコードをアップデートする際は、executable_path
の使用をService
オブジェクトに置き換える必要があります。