鱼C论坛

 找回密码
 立即注册
查看: 57|回复: 3

[已解决]py3.11.0,初始化WebDriver 错误

[复制链接]
发表于 2024-9-6 10:05:50 | 显示全部楼层 |阅读模式
10鱼币
py3.11.0,初始化WebDriver 错误

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import time
# 设置ChromeDriver路径
chrome_driver_path = 'C:\chromedriver'  # 请替换为你的ChromeDriver路径

# 配置ChromeOptions
chrome_options = Options()
chrome_options.add_argument("--start-maximized")  # 启动时最大化窗口
chrome_options.add_argument("--disable-infobars")  # 禁用信息栏

# 初始化WebDriver
service = Service(chrome_driver_path)
driver = webdriver.Chrome(service=service, options=chrome_options)

print("test")


错误提示:

Traceback (most recent call last):
  File "D:\installmy\Lib\site-packages\selenium\webdriver\common\driver_finder.py", line 64, in _binary_paths
    raise ValueError(f"The path is not a valid file: {path}")
ValueError: The path is not a valid file: C:\chromedriver

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\xmx-test\waigua20240905-2.py", line 17, in <module>
    driver = webdriver.Chrome(service=service, options=chrome_options)
  File "D:\installmy\Lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
    super().__init__(
  File "D:\installmy\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 50, in __init__
    if finder.get_browser_path():
  File "D:\installmy\Lib\site-packages\selenium\webdriver\common\driver_finder.py", line 47, in get_browser_path
    return self._binary_paths()["browser_path"]
  File "D:\installmy\Lib\site-packages\selenium\webdriver\common\driver_finder.py", line 78, in _binary_paths
    raise NoSuchDriverException(msg) from err
selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
最佳答案
2024-9-6 10:05:51
wideband 发表于 2024-09-06 10:20
谢谢您的回复,增加了测试文件存在语句,但是 的确有 ...


感谢您提供更多的信息。看来问题是因为路径格式引起的。

为了避免Windows路径中的转义字符问题,可以使用以下两个方法之一:

1. 使用双反斜杠 `\\` 替代单反斜杠 `\`。
2. 在路径前面加上 `r`,表示原始字符串。

具体代码修改如下:

### 方法一:双反斜杠
chrome_driver_path = 'C:\\chromedriver.exe'

### 方法二:原始字符串
chrome_driver_path = r'C:\chromedriver.exe'

请确保ChromeDriver的文件名正确(一般是 `chromedriver.exe`),并在修改后重新运行代码。如果仍然有问题,请确认路径和文件名的正确性。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

最佳答案

查看完整内容

感谢您提供更多的信息。看来问题是因为路径格式引起的。 为了避免Windows路径中的转义字符问题,可以使用以下两个方法之一: 1. 使用双反斜杠 `\\` 替代单反斜杠 `\`。 2. 在路径前面加上 `r`,表示原始字符串。 具体代码修改如下: ### 方法一:双反斜杠 ### 方法二:原始字符串 请确保ChromeDriver的文件名正确(一般是 `chromedriver.exe`),并在修改后重新运行代码。如果仍然有问题,请确认路 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-9-6 10:05:51 | 显示全部楼层    本楼为最佳答案   
wideband 发表于 2024-09-06 10:20
谢谢您的回复,增加了测试文件存在语句,但是 的确有 ...


感谢您提供更多的信息。看来问题是因为路径格式引起的。

为了避免Windows路径中的转义字符问题,可以使用以下两个方法之一:

1. 使用双反斜杠 `\\` 替代单反斜杠 `\`。
2. 在路径前面加上 `r`,表示原始字符串。

具体代码修改如下:

### 方法一:双反斜杠
chrome_driver_path = 'C:\\chromedriver.exe'

### 方法二:原始字符串
chrome_driver_path = r'C:\chromedriver.exe'

请确保ChromeDriver的文件名正确(一般是 `chromedriver.exe`),并在修改后重新运行代码。如果仍然有问题,请确认路径和文件名的正确性。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-9-6 10:05:59 | 显示全部楼层
看起来问题出在您指定的ChromeDriver路径 `chrome_driver_path = 'C:\chromedriver'` 这个地方。具体提示是该路径无效,可能是因为路径设置错误或文件不存在。您可以尝试以下方法来解决问题:

1. **确认ChromeDriver路径**: 请确保ChromeDriver文件确实存在于`C:\chromedriver`,并且该路径是正确的。例如,如果文件名包含扩展名(如`chromedriver.exe`),则路径应为`C:\chromedriver.exe`。

2. **使用原始字符串**: Windows路径中的反斜杠需要特殊处理,您可以使用原始字符串(在字符串前加上 `r`)或者使用双反斜杠避免转义问题。
chrome_driver_path = r'C:\chromedriver.exe'
# 或者
chrome_driver_path = 'C:\\chromedriver.exe'

3. **检查文件存在**: 在代码中加入文件存在性检查,以确保路径正确。
import os

chrome_driver_path = r'C:\chromedriver.exe'
if not os.path.exists(chrome_driver_path):
    raise FileNotFoundError(f"ChromeDriver not found at {chrome_driver_path}")

# 你的代码...
service = Service(chrome_driver_path)
driver = webdriver.Chrome(service=service, options=chrome_options)

print("test")

请按照以上方法调整代码后再运行,应该能有效解决 `ValueError: The path is not a valid file` 及后续的错误提示。如果问题仍然存在,请确认您安装和配置了正确版本的ChromeDriver,与您的Chrome浏览器版本匹配。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-9-6 10:20:21 | 显示全部楼层
谢谢您的回复,增加了测试文件存在语句,但是 的确有: C:\chromedriver 文件呀。
if not os.path.exists(chrome_driver_path):
    raise FileNotFoundError(f"ChromeDriver not found at {chrome_driver_path}")

提示:
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\xmx-test\waigua20240905-2.py", line 14, in <module>
    raise FileNotFoundError(f"ChromeDriver not found at {chrome_driver_path}")
FileNotFoundError: ChromeDriver not found at C:\chromedriver.exe
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-17 03:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表