我正在运行我今天在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浏览器时会出错。关于发生了什么的任何想法?
答案 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)
我想略微纠正以前的答案。工作示例如下:
初步:
运行脚本:
# -*- 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()