【问题标题】:I can't launch Chrome driver without specifying path我无法在不指定路径的情况下启动 Chrome 驱动程序
【发布时间】:2018-02-06 21:48:15
【问题描述】:

当我使用 Selenium Python 时,我不断收到错误消息以及其他错误消息

driver = webdriver.Firefox()
driver.get('http://stackoverflow.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://stackoverflow.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 谢谢

【问题讨论】:

  • 你用的是什么操作系统?
  • 您是否尝试过将包含 chromedriver 的文件夹放入您的 PATH 中?
  • @santhoshkumar 我正在使用 Windows
  • @BryanOakley 我刚刚尝试了 Chromedriver,这很有效。 Geckodriver 似乎不起作用。我确实有不同版本的 Firefox(夜间、开发人员和测试版在一个阶段,但都删除了)。也许它正在尝试访问其中之一?

标签: python selenium selenium-webdriver selenium-chromedriver geckodriver


【解决方案1】:

是的。您需要在 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://stackoverflow.com' )

希望这会有所帮助。谢谢。

【讨论】:

  • 本教程适用于 Chromedriver 和 Java?你能解释一下我将如何在 Python 中做到这一点吗?它似乎无法识别 geckodriver.exe。我也试过改变 geckodriver 的路径
  • 是的,正确。概念是一样的。只需将 geckodriver 放在一个文件夹中,然后将该路径附加到环境变量中。然后在命令提示符下尝试点击 geckodriver 而不是 geckodriver.exe。我没有测试过这个,但我相信这会奏效。谢谢。
  • 这似乎对我不起作用。也许我做错了。
  • 您可以尝试按照文档中的说明添加 chromdriver 并检查它是否有效?
  • 您能解释一下如何在变量中执行executable_path 并将其传递到您的脚本中吗?从我看到的目录在 Pycharm 中应该是相同的。
【解决方案2】:

设置路径有两种方式

  • chromedriver.exe的路径放入PATH(在Windows电脑上),这样你的PATH设置是正确的,但是你需要调用默认构造函数才能使用它。

    driver = webdriver.Chrome()

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

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

选择你想要的任何一个。

【讨论】:

  • 我的壁虎路径目录似乎根本没有注册。第二个选项完美地工作。如果他们有 export PATH=$PATH:/path/to/directory/of/executable/downloaded/ 或对 Windows 用户类似的东西,那就太好了。因为我必须重置我的电脑并安装 linux 才能使用 geckodriver,这似乎很奇怪。我将在我的笔记本电脑上对此进行测试,看看这个问题是否仅存在于这台电脑上,或者是否是我正在做的事情。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多