私はPythonスクリプトをコーディングするためにSublimeを使用しています。次のコードは、webdriver_managerパッケージを使用してPythonのSeleniumがドライバーを自動的にインストールするためのものです。
# pip install webdriver-manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()
#s=Service(path)
#driver=webdriver.Chrome(service=s)
driver.get('https://www.google.com')
driver.find_element(By.NAME, 'q').send_keys('Yasser Khalil')
コードは正常に動作しますが、次のような警告が表示されました
Demo.py:7: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(ChromeDriverManager().install())
このようなバグを修正するにはどうすればいいでしょうか?
ベストアンサー1
このエラーメッセージは...
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
...は、鍵 executable_path
今後のリリースでは廃止される予定です。
この変更は、セレン 4.0 ベータ 1 変更履歴以下について言及しています:
Options
ドライバーのインスタンス化における、および以外のすべてのService
引数を非推奨にします。(#9125、#9128)
解決
とセレン4として鍵 executable_path
Service()
は非推奨なので、以下で説明するように、コマンドとともにクラスのインスタンスを使用する必要がありますChromeDriverManager().install()
。
前提条件
確認しておいて:
セレンアップグレードされますバージョン4.0.0
pip3 install -U selenium
Python 用 Webdriver マネージャーインストールされている
pip3 install webdriver-manager
インストールに関する詳細な説明は以下をご覧ください。Python 用 Webdriver マネージャーでModuleNotFoundError: webdrivermanager をインストールした後でも、「webdriver_manager」という名前のモジュールが見つからないというエラーが発生する
Selenium v4 互換コードブロック
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.google.com")
コンソール出力:
[WDM] - ====== WebDriver manager ======
[WDM] - Current google-chrome version is 96.0.4664
[WDM] - Get LATEST driver version for 96.0.4664
[WDM] - Driver [C:\Users\Admin\.wdm\drivers\chromedriver\win32\96.0.4664.45\chromedriver.exe] found in cache
インストールに関する詳細な説明は以下をご覧ください。Python 用 Webdriver マネージャーでPython 用 Webdriver Manager を使用した Selenium ChromeDriver の問題
合格したい場合Options()
使用できるオブジェクト:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument("start-maximized")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://www.google.com")
TL; DR
関連するバグレポート/プルリクエストは次の場所にあります: