如果不指定路径,我无法启动 Chrome 驱动程序

I can't launch Chrome driver without specifying path

当我使用

时,我在 Selenium Python 中不断收到错误消息以及其他错误消息
driver = webdriver.Firefox()
driver.get('http://whosebug.com')

错误信息:

selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH or:
 selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilities.

我不断收到此消息以及 Selenium 中的其他消息 Python。我可以通过以下方式解决这个问题:

driver = webdriver.Firefox(executable_path=r'C:\Users\Bain3\Music\geckodriver.exe')
driver.get(' http://whosebug.com' )

我尝试了以下方法来解决 Chrome 和 Firefox 的这个问题: 正在重新安装 Chrome、Firefox、Pycharm、Anaconda、Selenium(pip install selenium)

正在更改文件目录:https://ibb.co/huDuWk

重新安装 Chrome 和 Firefox 后出现此问题。
目录是:

C:\Users\Bain3\Anaconda3
C:\Brother\geckodriver.exe
C:\Program Files\Mozilla Firefox\firefox.exe 

我正在使用 windows 10 谢谢

是的。您需要更新 windows 中的 Path 环境变量。只需将现有变量值附加到实际包含 chrome/gecko 驱动程序的文件夹路径即可。本文档可能对您有所帮助,

https://developers.thomsonreuters.com/sites/default/files/How%20To%20Add%20ChromeDriver%20To%20System%20Variables_0.pdf

注意 - 虽然我们可以通过这样做来摆脱添加 executable_path,但这不是可取的。因为将来它可能会与您要使用的驱动程序版本发生冲突。我建议您将 executable_path 的值存储在变量中并将其传递到脚本中,而不是永久更新路径变量。这样您就可以更好地控制驱动版本。

关于将驱动程序路径存储在变量中,下面的行可能会给你一些想法。

geckoPath=r'C:\Users\Bain3\Music\geckodriver.exe'
driver = webdriver.Firefox(executable_path=geckoPath)
driver.get(' http://whosebug.com' )

希望这对您有所帮助。谢谢

设置路径有两种方式

  • chromedriver.exe 的路径放入 PATH(在 Windows 计算机上),因此您的 PATH 设置是正确的,但您需要调用默认构造函数以使用它。

    driver = webdriver.Chrome()

  • webdriver.Chrome(executable_path='some path')中指定路径。此处需要可执行文件的完整路径,而不是存放路径的目录。

    webdriver.Chrome(executable_path='C:\Users\sankalp\chromedriver.exe')

任选其一。

第一步是设置路径 MyCopmuter -> 属性 -> 环境变量 -> 在那里设置你的路径。 然后是下面的示例代码:

    from selenium import webdriver        
    webdriver.Firefox(executable_path='C:\Users\xyz\chromedriver.exe')
    driver.get(' http://whosebug.com' )
    filename="stack_screen_shot"
    #to save in a file in output folder
    browser.save_screenshot("C:\Users\xyz\PycharmProjects\output\"+file_name+".png")