DeprecationWarning: executable_path has been deprecated selenium python
Предупреждение об устаревании: executable_path устарел selenium python
Я использую sublime для написания сценариев на python. Следующий код предназначен для автоматической установки драйвера selenium на python с помощью пакета webdriver_manager
# 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
Код работает нормально, но я получил подобное предупреждение
Demo.py:7: DeprecationWarning: executable_path has been deprecated, please passin a Service object driver = webdriver.Chrome(ChromeDriverManager().install())
Как исправить такую ошибку?
Переведено автоматически
Ответ 1
Это сообщение об ошибке...
DeprecationWarning: executable_path has been deprecated, please passin a Service object
...подразумевает, что ключexecutable_path устареет в следующих выпусках.
Это изменение встроено в Selenium 4.0 Beta 1список изменений, в котором упоминается:
Не рекомендуется использовать все аргументы, кроме Options и Service при создании экземпляра драйвера. (#9125,#9128)
Решение
Поскольку selenium4 в качестве ключаexecutable_path устарел, вы должны использовать экземпляр Service() класса вместе с ChromeDriverManager().install() командой, как описано ниже.
[WDM] - ====== WebDriver manager ====== [WDM] - Current google-chrome version is96.0.4664 [WDM] - Get LATEST driver version for96.0.4664 [WDM] - Driver [C:\Users\Admin\.wdm\drivers\chromedriver\win32\96.0.4664.45\chromedriver.exe] found in cache
Если вы хотите передать 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
from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service(r"C:\chromedriver.exe") options = webdriver.ChromeOptions() driver = webdriver.Chrome(service=service, options=options)
Extending on the accepted answer, the Service class allows to explicitly specify a ChromeDriver executable in the same way as previously using the executable_path parameter. In this way existing code is easily migrated (clearly you need to replace C:\chromedriver.exe above by your path).
Ответ 3
I could figure it out
# 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