且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Selenium WebDriver无法加载配置文件

更新时间:2022-12-05 18:22:06

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

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


I try firing up Firefox using Selenium WebDriver and get the following error:

---------------------------------------------------------------------------
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" 

Now, every other similar thread I found here on *** says the solution is to update selenium by using the command

pip install -U selenium

This fixed the problem on my local computer, but the problem persists on my remote computer on AWS. These two computers have the same Firefox version, both have selenium up-to-date and they even have the exact same profile folder on ~/.mozilla/firefox.

Any suggestions?

EDIT:

I can start Firefox without the profile. That is, doing

w = webdriver.Firefox()

works, whereas doing

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

gets the above error message.

EDIT2:

Running the Firefox executable directly works:

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

helped me to specify an explicit path to the binary file firefox

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