【问题标题】:How can I find chromedriver.exe for chrome version 94.0.4606.61如何找到适用于 chrome 版本 94.0.4606.61 的 chromedriver.exe
【发布时间】:2021-10-14 10:52:16
【问题描述】:

我目前正在使用 Jupyter notebook 编写 VS 代码。但是我找不到 94.0.4606.61 版本的 Chromedriver 的 chromedriver.exe 文件的路径。

我进行了搜索,但仍然找不到解决方案。我从 Stack Overflow 上的上一个问题中得到了这些代码的一些行:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
from selenium.webdriver.chrome.service import Service
service=Service(r'C:/path/to/Users/User/.wdm/drivers/chromedriver/win32/94.0.4606.61')
driver=webdriver.Chrome(service=service)

我试图解决弃用问题 C:\Users\User\AppData\Local\Temp/ipykernel_17908/1503906442.py:1: DeprecationWarning: executable_path has been deprecated, please pass in a Service object,因此,我试图找到 Chromedriver.exe 当我解决了弃用问题时,我输入的这行代码出现了另一个错误(如上所示):driver=webdriver.Chrome(service=service),

然后是来自 VS Code 的错误消息:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\common\service.py in start(self)
     73             cmd.extend(self.command_line_args())
---> 74             self.process = subprocess.Popen(cmd, env=self.env,
     75                                             close_fds=system() != 'Windows',

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask)
    950 
--> 951             self._execute_child(args, executable, preexec_fn, close_fds,
    952                                 pass_fds, cwd, env,

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session)
   1419             try:
-> 1420                 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
   1421                                          # no special security

FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

WebDriverException                        Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_17908/1442944818.py in <module>
----> 1 driver=webdriver.Chrome(service=service)

~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\chrome\webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, service, keep_alive)
     67             service = Service(executable_path, port, service_args, service_log_path)
     68 
---> 69         super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
     70                                         port, options,
     71                                         service_args, desired_capabilities,

~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\chromium\webdriver.py in __init__(self, browser_name, vendor_prefix, port, options, service_args, desired_capabilities, service_log_path, service, keep_alive)
     88 
     89         self.service = service
---> 90         self.service.start()
     91 
     92         try:

~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\common\service.py in start(self)
     82         except OSError as err:
     83             if err.errno == errno.ENOENT:
---> 84                 raise WebDriverException(
     85                     "'%s' executable needs to be in PATH. %s" % (
     86                         os.path.basename(self.path), self.start_error_message)

WebDriverException: Message: '94.0.4606.61' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home

另外,当我尝试运行这些codes如下图)时,deprecation问题和FileNotFoundError同时发生:

import time
from selenium import webdriver
driver = webdriver.Chrome('/path/to/chromedriver')

我发现这个website 说:

“chromedriver(.exe)”不会出现在解决方案资源管理器中,但在构建过程中会从包源文件夹复制到输出文件夹。

什么意思?

我该如何解决这个问题?我使用的是 Windows 和 Chrome 版本 94。

编辑

我在这个video: How To Fix -Executable path has been deprecated please pass in a Service object in Selenium Python找到了一些提示

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
s = Service(executable_path="C:/Users/User/.wdm/drivers/chromedriver/win32/94.0.4606.61")
driver = webdriver.Chrome(Service = s)

但是,driver = webdriver.Chrome(Service = s) 给出 TypeError

------------------------------------------------------------------------

---
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_11848/787057698.py in <module>
----> 1 driver = webdriver.Chrome(Service = s)

TypeError: __init__() got an unexpected keyword argument 'Service'

【问题讨论】:

  • 您需要使用driver = webdriver.Chrome(service = s),即“服务”而不是“服务”(小 s 与大写 S)。

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

试试这样:

import selenium
from selenium import webdriver


PATH = "r'C:/path/to/Users/User/.wdm/drivers/chromedriver/win32/94.0.4606.61'"

driver = webdriver.Chrome(PATH)

【讨论】:

  • 最后一行:driver = webdriver.Chrome(PATH) 会导致弃用和FileNotFoundError
  • 我无法将它添加到路径,因为没有“Chromedriver.exe” 我去搜索文件并且只有驱动程序-->chromedriver-->win32-->94.0 .4606.61
【解决方案2】:

你可以在这里找到它们

https://chromedriver.chromium.org/downloads

因为你的Chrome版本是94所以你需要下载这个

https://chromedriver.storage.googleapis.com/94.0.4606.61/chromedriver_win32.zip

放入可能的 C 驱动程序并提供类似的路径

import selenium
from selenium import webdriver


PATH = r"C:/chromedriver.exe"

driver = webdriver.Chrome(PATH)

【讨论】:

  • 问题是下载的chromedriver(如你分享的链接所示)没有chromedriver.exe文件
  • chromedriver.storage.googleapis.com/94.0.4606.61/… 里面肯定有chromedriver.exe 文件,我现在才检查过
  • import selenium--> from selenimum import webdriver--> from selenium.webdriver.chrome.service import service--> service = Service("D:\\chromedriver_win32\\chromedriver.exe")--> PATH = "D:\\chromedriver_win32\\chromedriver.exe"--> driver = webdriver.Chrome(service=Service)最后一行代码给了@987654332 @ 我该如何纠正这个类型错误?
  • Service 用于解决executable_path deprecation 问题。
  • 是的,你是对的。最初,我需要网页剪贴网页并获取 csv 文件格式的数据。事实上,我只需要 csv 文件中的数据,而不是真正使用 python 进行网络抓取。对我来说,即使是网络垃圾也很难。我什至不知道我为什么要折磨自己做所有这些,应该早点放弃。
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2022-07-24
  • 1970-01-01
相关资源
最近更新 更多