【问题标题】:Selenium WebDriver can't load profileSelenium WebDriver 无法加载配置文件
【发布时间】:2014-11-25 10:06:47
【问题描述】:

我尝试使用 Selenium WebDriver 启动 Firefox 并收到以下错误:

---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
<ipython-input-10-9e1140c380e1> in <module>()
----> 1 t = tweepi.Tweepi(username, 0, profile_name)

/home/ubuntu/twitter/tweepi.pyc in __init__(self, username, threadid, profilename)
     22             profile = webdriver.FirefoxProfile(profilename)
     23             self.logger.debug('launching firefox')
---> 24             self.driver = webdriver.Firefox(firefox_profile = profile)
     25         else:
     26             self.driver = webdriver.Firefox()

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.pyc in __init__(self, firefox_profile, firefox_binary, timeout, capabilities, proxy)
     57         RemoteWebDriver.__init__(self,
     58             command_executor=ExtensionConnection("127.0.0.1", self.profile,
---> 59             self.binary, timeout),
     60             desired_capabilities=capabilities,
     61             keep_alive=True)

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.pyc in __init__(self, host, firefox_profile, firefox_binary, timeout)
     45         self.profile.add_extension()
     46 
---> 47         self.binary.launch_browser(self.profile)
     48         _URL = "http://%s:%d/hub" % (HOST, PORT)
     49         RemoteConnection.__init__(

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in launch_browser(self, profile)
     62 
     63         self._start_from_profile_path(self.profile.path)
---> 64         self._wait_until_connectable()
     65 
     66     def kill(self):

/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in _wait_until_connectable(self)
    106                 raise WebDriverException("Can't load the profile. Profile "
    107                       "Dir: %s Firefox output: %s" % (
--> 108                           self.profile.path, self._get_firefox_output()))
    109             count += 1
    110             time.sleep(1)

WebDriverException: Message: "Can't load the profile. Profile Dir: /tmp/tmp4nBIo5/webdriver-py-profilecopy Firefox output: None" 

现在,我在 stackoverflow 上找到的所有其他类似线程都说解决方案是使用命令更新 selenium

pip install -U selenium

这解决了我的本地计算机上的问题,但问题仍然存在于我在 AWS 上的远程计算机上。这两台电脑有相同的 Firefox 版本,都有最新的 selenium,甚至在 ~/.mozilla/firefox 上有完全相同的配置文件文件夹。

有什么建议吗?

编辑:

我可以在没有配置文件的情况下启动 Firefox。也就是做

w = webdriver.Firefox()

工作,而做

profile_name = '/home/ubuntu/.mozilla/firefox/amozqob6.profile6'
profile = webdriver.FirefoxProfile(profile_name)
w = webdriver.Firefox(firefox_profile=profile)

得到上述错误信息。

EDIT2:

直接运行 Firefox 可执行文件:

firefox -profile ~/.mozilla/firefox/amozqob6.profile6

【问题讨论】:

  • 您是否能够在没有自定义配置文件的情况下启动 Selenium 会话?尝试在遥控器上启动一个普通的 Firefox Webdriver 实例。
  • @SilasRay 确实有效。我更新了问题。有什么建议吗?
  • 我对 Firefox 配置文件的内部了解不多,但作为第一次尝试,您是否偶然创建了您在与 AWS 实例不同的操作系统上使用的配置文件?我不知道 FF 配置文件是否可以跨操作系统移植。
  • @SilasRay 我在本地 Ubuntu 12 32 位上创建了它,而远程是 16 位。但是,它应该可以工作,因为我以前做过。我最近不得不将 Firefox 从 30 升级到 32(出于其他原因),并试图让一切恢复正常,上次我所做的是在本地创建配置文件并复制到远程。
  • 远程是 16 位的?你确定?也许你的意思是 64 岁?

标签: python firefox selenium


【解决方案1】:

帮助我指定二进制文件 firefox 的显式路径

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary("/home/teddy/firefox/firefox")
driver = webdriver.Firefox(firefox_binary=binary)

【讨论】:

    猜你喜欢
    • 2013-08-12
    • 1970-01-01
    • 2013-04-04
    • 2022-06-29
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多