SeleniumでDeprecationWarning: executable_path has been deprecated, please pass in a Service objectとエラーする

DeprecationWarning: executable_path has been deprecated, please pass in a Service object

↑いつから出ていたんだこのエラー、、、executable_pathをwebdriver.Chrome()関数で直接使おうとした場合、selenium4から出るようになったらしい。

エラーしても動作に問題ないので無視していたけど、機会があったので解消方法を見つけたので記載します。

スポンサーリンク

エラーする記述

ソースコード

import os
from selenium import webdriver

# ChromeWebdriverファイルのパス指定
driver = webdriver.Chrome(executable_path=os.getcwd() + "\\webdriver\\chromedriver.exe")

driver.get("http://holiday-programmer.net/")

実行結果

この赤字のエラーを直したい、メッセージ的には「Service Objectを使って!」ということらしい。

改善後の記述

ソースコード

import os
from selenium import webdriver
from selenium.webdriver.chrome import service as cs

# ChromeWebdriverファイルのパス指定
chrome_service = cs.Service(executable_path=os.getcwd() + "\\webdriver\\chromedriver.exe")
driver = webdriver.Chrome(service=chrome_service)

driver.get("http://holiday-programmer.net/")

実行結果

まとめ

element_by_idもそうだったけど、selenium4になることで、今まで問題なかったことがちょいちょい問題になることが出てきたなぁ。。。

スポンサーリンク
おすすめの記事