我正在尝试使用 chromedriver 作为驱动程序来运行带有 selenium 的脚本。我收到以下错误信息:
Traceback (most recent call last):
File "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\service.py", line 76, in start
stdin=PIPE)
File "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "scrape.py", line 10, in <module>
options= chrome_options)
File "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
self.service.start()
File "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
我认为这可能是路径问题,但不确定如何修复它。安装 chrome 驱动程序时,我将 chromedriver 位置添加到“环境变量”中的 PATH。其位置/路径为:“C:\Web_Drivers”。
当我在 powershell 中调用 chromedriver 时,收到以下消息:
Starting ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024}) on port 9515
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
答案1
基本故障排除
您可能需要尝试使用常规命令提示符(而不是 PowerShell),看看是否有助于解决问题。
另一个考虑因素可能是,如果您将路径放置
chromedriver.exe
在您的User
路径中而不是您的System
路径中。更新路径变量后,您应该注销并重新登录。在某些情况下,您可能还需要重新启动 PC。
调用 ChromeDriver
假设 ChromeDriver 位于您的 Windows 路径中,请在脚本中使用chromedriver
或,例如:chromedriver.exe
例如,没有executable_path
driver = webdriver.Chrome('chromedriver')
例如executable_path
driver = webdriver.Chrome(options=options, executable_path='chromedriver')
例如带有executable_path
和一个变量
chromedriver_path = 'chromedriver'
driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)
其他选项
还有几个选项可以直接指定 ChromeDriver 的路径:
假设
chromedriver.exe
与您的脚本位于同一文件夹中:driver = webdriver.Chrome()
chromedriver.exe
指定without的完整路径executable_path
:driver = webdriver.Chrome('C:/path/to/chromedriver.exe')
chromedriver.exe
使用指定完整路径executable_path
:driver = webdriver.Chrome(options=options, executable_path='C:/path/to/chromedriver.exe')
chromedriver.exe
指定withexecutable_path
和变量的完整路径:chromedriver_path = 'C:/path/to/chromedriver.exe' driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)
请注意,虽然您也可以使用C:\path\to\chromedriver.exe
和C:\\path\\to\\chromedriver.exe
,但某些 Chromium\ChromeDriver 分支可能不接受C:\path\to\chromedriver.exe
。在这种情况下,请尝试使用\\
或/
。