0

我正在尝试在我的 Instagram 页面上使用一些机器人,但我无法登录。

这是我的代码:

from instapy import InstaPy
session = InstaPy(username='' ,password='') 
session.login()

我收到此错误:

SessionNotCreatedException: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line

我有最新版本的 Firefox。

谢谢!

4

2 回答 2

2

我的解决方案

    from instapy import InstaPy

    session = InstaPy(username="username", password="password", browser_executable_path=r"C:\Program Files\Mozilla Firefox\firefox.exe")
    session.login()

在 Session 实例中传递browser_executable_path = r"C:[Custom Location]" 。

重新安装 Firefox 对我不起作用。

解释

    selenium.common.exceptions.SessionNotCreatedException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line

该消息意味着 GeckoDriver在尝试启动/生成新的浏览上下文(即 Firefox 浏览器会话)时无法找到 Firefox 二进制文件(firefox.exe) 。

为什么? 可能出于以下两个原因之一:

  1. Firefox 未安装在您的系统中。
  2. Firefox 未安装在系统的默认位置。

通常,任何 Selenium 项目都需要...

    options = webdriver.firefox.options.Options()
    options.binary_location = r"C:\Program Files\Mozilla Firefox\firefox.exe"
    browser = webdriver.Firefox(options=options)

...对于通过 Options() 实例传递 Firefox 二进制文件的绝对路径的自定义位置,但由于 InstaPy 处理初始化浏览器,因此您必须通过类属性“browser_executable_path”传递它。

TL;DR:添加 InstaPy 类的参数 browser_executable_path 允许我将 r"C:[Custom Firefox Location]" 作为 Firefox 位置传递。

参考

于 2021-04-08T14:15:09.597 回答
-2

您的代码应如下所示:

from instapy import InstaPy

session = InstaPy(username='', password='')
session.login()

确保将您正在使用的 Instagram 帐户的登录信息也放入用户名和密码参数中。

于 2020-11-18T05:59:18.620 回答