Skip to content

Seleniumでexecutable_pathが非推奨の警告を解決する方法

問題: executable_pathが非推奨という警告

Selenium 4.xを使用してPythonで自動化スクリプトを実行すると、次のような警告メッセージが表示されます:

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をインスタンス化します:

python
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オブジェクトの使用

ブラウザのオプションを設定する場合:

python
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のパスを指定する場合:

python
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を管理できます:

python
from selenium import webdriver

# Selenium Managerが自動的にWebDriverを設定
driver = webdriver.Chrome()
driver.get("https://www.google.com")

便利な機能

Selenium Managerは自動的に適切なWebDriverをダウンロードして設定するため、webdriver-managerなどの外部ライブラリが不要になります。

Firefoxの場合

Firefoxを使用する場合の設定方法:

python
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")

必要なパッケージのインストール

以下のコマンドで必要なパッケージをインストールしてください:

bash
pip install -U selenium
pip install webdriver-manager

まとめ

Selenium 4では、executable_pathパラメータが非推奨となり、代わりにServiceオブジェクトを使用することが推奨されています。最新のSelenium(4.6.0以降)では、組み込みのSelenium Managerを利用することで、より簡単にWebDriverを管理できます。

注意

古いコードをアップデートする際は、executable_pathの使用をServiceオブジェクトに置き換える必要があります。