我正在使用 sublime 来编写 python 脚本。以下代码是python中selenium使用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
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')
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但我收到了这样的警告
Demo.py:7: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(ChromeDriverManager().install())
Run Code Online (Sandbox Code Playgroud)
如何修复这样的错误?
Deb*_*anB 265
这个错误信息...
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
Run Code Online (Sandbox Code Playgroud)
...意味着该密钥 executable_path将在即将发布的版本中被弃用。
此更改与Selenium 4.0 Beta 1 更改日志一致,其中提到:
弃用驱动程序实例化中的所有 but
Options和Service参数。(#9125,#9128)
使用selenium4作为密钥 executable_path已被弃用,您必须使用该类的实例Service()以及ChromeDriverManager().install()命令,如下所述。
确保这件事:
Selenium升级至v4.0.0
pip3 install -U selenium
Run Code Online (Sandbox Code Playgroud)
Python 的 Webdriver 管理器已安装
pip3 install webdriver-manager
Run Code Online (Sandbox Code Playgroud)
您可以在ModuleNotFoundError: No module named 'webdriver_manager' 错误(即使在安装 webdrivermanager 后)中找到有关为 Python安装 Webdriver Manager 的详细讨论
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")
Run Code Online (Sandbox Code Playgroud)
控制台输出:
[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
Run Code Online (Sandbox Code Playgroud)
您可以在Selenium ChromeDriver issues using Webdriver Manager for Python中找到有关安装适用于Python的 Webdriver Manager的详细讨论
如果您想传递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")
Run Code Online (Sandbox Code Playgroud)
您可以在以下位置找到相关的错误报告/拉取请求:
小智 104
这对我有用
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)
Run Code Online (Sandbox Code Playgroud)
扩展已接受的答案,Service 类允许以与之前使用executable_path 参数相同的方式显式指定 ChromeDriver 可执行文件。通过这种方式,可以轻松迁移现有代码(显然您需要用C:\chromedriver.exe您的路径替换上面的代码)。
Yas*_*lil 71
我能弄清楚
# 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
s=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s)
driver.maximize_window()
driver.get('https://www.google.com')
driver.find_element(By.NAME, 'q').send_keys('Yasser Khalil')
Run Code Online (Sandbox Code Playgroud)
Mor*_*ori 58
2023 年 11 月更新
对于 Chrome 版本 119.0.6045.124(官方版本)(64 位)或更高版本,没有像以前那样的任何WebDriver。所以只需添加这些代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.selenium.dev/selenium/web/web-form.html")
Run Code Online (Sandbox Code Playgroud)
我发现这个弃用问题出现在 Selenium、Pip 和 Python 更新中。所以只需更改:
前:
from selenium import webdriver
chrome_driver_path = 'C:/Users/Morteza/Documents/Dev/chromedriver.exe'
driver = webdriver.Chrome(executable_path=chrome_driver_path)
url = "https://www.google.com"
driver.get(url)
Run Code Online (Sandbox Code Playgroud)
后:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
s=Service('C:/Users/Morteza/Documents/Dev/chromedriver.exe')
browser = webdriver.Chrome(service=s)
url='https://www.google.com'
browser.get(url)
Run Code Online (Sandbox Code Playgroud)
Sne*_*gsu 19
以上答案均针对Chrome,添加针对Firefox的答案
安装:
pip install webdriver-manager
Run Code Online (Sandbox Code Playgroud)
代码:
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(service=Service(executable_path=GeckoDriverManager().install()))
Run Code Online (Sandbox Code Playgroud)
参考: https: //github.com/SergeyPirogov/webdriver_manager/issues/262#issuecomment-955197860
小智 8
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service_obj = Service("WebDrivers_path\chromedriver.exe")
driver = webdriver.Chrome(service=service_obj)
driver.get("https://www.google.com")
Run Code Online (Sandbox Code Playgroud)
小智 5
在这里查看 Service 对象中的新定义。
我的解决方案
from selenium.webdriver.chrome.service import Service
chrome_executable = Service(executable_path='chromedriver.exe', log_path='NUL')
driver = webdriver.Chrome(service=chrome_executable)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
450788 次 |
| 最近记录: |