Chrome 驱动程序无法正常运行,从而阻止使用 Selenium

Chrome 驱动程序无法正常运行,从而阻止使用 Selenium

我正在尝试使用 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.exeC:\\path\\to\\chromedriver.exe,但某些 Chromium\ChromeDriver 分支可能不接受C:\path\to\chromedriver.exe。在这种情况下,请尝试使用\\/

相关内容