Selenium-Firefox:运行我的Selenium脚本时Firefox浏览器崩溃

时间:2016-06-10 18:00:34

标签: python selenium firefox

我正在运行我今天在Selenium-Python中开发的一些脚本。他们工作得很好。当我关闭一个窗口&重新开始测试,打开的Firefox浏览器会崩溃&我的脚本会失败。字面上发生了一秒到下一秒。我不确定导致这种情况发生了什么变化。

我正在运行Selenium 2.53& Firefox 47在我的机器上。偶尔当我再次尝试运行我的脚本时,我会在Pycharm中得到这个运行错误:

文件“C:\ Python34 \ lib \ site-packages \ selenium \ webdriver \ firefox \ firefox_binary.py”,第98行,在_wait_until_connectable中     引发WebDriverException(“浏览器似乎已退出” selenium.common.exceptions.WebDriverException:消息:在我们连接之前,浏览器似乎已退出。如果在FirefoxBinary构造函数中指定了log_file,请检查它是否有详细信息。

通常我手动关闭打开的崩溃的FireFox浏览器时会出错。关于发生了什么的任何想法?

3 个答案:

答案 0 :(得分:2)

我也遇到过Firefox 47和Selenium的问题。您可以尝试恢复到以前版本的Firefox并禁用更新。

可以在此处找到以前版本的Firefox以及有关如何禁用自动更新的说明: https://support.mozilla.org/en-US/kb/install-older-version-of-firefox

答案 1 :(得分:2)

根据 Firefox 47 release notes(2016年6月7日):

  

未解决:Selenium WebDriver可能导致Firefox在启动时崩溃,而是使用Marionette WebDriver

答案 2 :(得分:2)

我想略微纠正以前的答案。工作示例如下:

初​​步:

  1. https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver;
  2. 下载geckodriver.zip
  3. 将geckodriver.exe解压缩到此脚本所在的目录。
  4. 运行脚本:

    # -*- coding: utf-8 -*-
    
    import os
    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    firefox_capabilities = DesiredCapabilities.FIREFOX
    firefox_capabilities['marionette'] = True
    gecko = os.path.normpath(os.path.join(os.path.dirname(__file__), 'geckodriver'))
    browser = webdriver.Firefox(capabilities=firefox_capabilities, executable_path=gecko+'.exe')
    
    browser.get('http:///www.google.com')
    browser.close()
    # browser.quit()