【问题标题】:How to fix Selenium WebDriverException: "The browser appears to have exited"如何修复 Selenium WebDriverException:“浏览器似乎已退出”
【发布时间】:2016-10-30 15:39:26
【问题描述】:

当我想使用FireFox webdriver时遇到了这个异常

raise WebDriverException "浏览器似乎已退出" WebDriverException:消息:浏览器似乎在我们连接之前已经退出。如果您在 FirefoxBinary 构造函数,查看详情。

我阅读了this question 并更新了我的 selenium,但我已经遇到了同样的问题。

我的代码:

driver = webdriver.Firefox()
time.sleep(5)
driver.get('http://www.example.com')

更新

我读过this question

现在我有这个错误

OSError: [Errno 20] Not a directory
Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x407a690>> ignored

【问题讨论】:

  • 更新 selenium 和 firefox 版本
  • @LeonBarkan 我在我的问题中写道我做到了
  • 糟糕 :) 是的,你做到了
  • 你能贴出你的代码吗
  • @LeonBarkan 我用一个简单的例子测试,我添加了它

标签: python selenium selenium-webdriver selenium-firefoxdriver


【解决方案1】:

我的 selenium 脚本也遇到了同样的问题。我必须确保我使用的是 selenium 安装文档中描述的正确软件版本,即 Pyhton 3.5 和 Firefox 版本 45 (https://support.mozilla.org/en-US/kb/install-older-version-of-firefox)。我使用的是 selenium 2.9.1 版本,尽管从 2.53 左右阅读可能效果最好。

我在 cmets 中注意到您还质疑如何检查 Firefox 的版本。为此,您可以打开 Firefox 浏览器,单击菜单按钮并单击弹出菜单底部的问号,最后单击“关于 Firefox”。版本号应该是弹出窗口中的第二行文本。可能还有其他方法可以做到这一点,但这对我有用。

希望这将帮助您运行脚本。

【讨论】:

  • 如你所说,我安装了旧版本的 FF,我用 firefox -v 检查了它,我有 FF 43,但它并没有解决我的问题
  • 嗯...不太确定。我在编辑之前遇到了错误,在我下载了正确版本的软件并在我的 FF 45 上重新安装了 selenium 2.5 之后,我在 python 3.5 中运行了你的脚本,它按预期工作。我会说再次检查您的版本,但除此之外我不确定朋友。很抱歉给您带来麻烦。
【解决方案2】:

如果你在 Firefox 47.0 上运行 Selenium,你需要更新到 Firefox 47.0.1 它没有在 Ubuntu 的主仓库中发布。所以你必须添加这个 PPA:https://launchpad.net/~ubuntu-mozilla-security/+archive/ubuntu/ppa

发行说明: https://www.mozilla.org/en-US/firefox/47.0.1/releasenotes/

“Selenium WebDriver 可能会导致 Firefox 在启动时崩溃”

一旦 Firefox 48.0 发布,它将包含修复程序。我认为 Ubuntu 已跳过此更新,因为它影响的用户很少。

我可以确认 FF 47.0 和 Selenium 2.53 的错误,我还可以确认升级到 FF 47.0.1 可以修复错误。

【讨论】:

  • 对于我的新服务器设置,我有 Firefox 47.0.1 和 selenium 2.53.06,但我仍然收到此错误。对于我使用 Firefox 47.0.1 和 selenium 2.53.05 进行的本地开发工作。我现在纠结于如何将 selenium 降级到 2.53.05,你对此有什么想法吗?
  • FF 版本确实是我的问题。看起来 Ubuntu 现在已经达到 FF 48,可以正常工作。
【解决方案3】:

通过手动将 firefox 47.0.0 更新到 47.0.1 来解决此问题

【讨论】:

  • 它适用于 Selenium webdriver 版本:2.53.6(已测试)。 firefox 47.0.0 是罪魁祸首。 47.0.1 有效!谢谢@gunesmes
【解决方案4】:

1.安装最新的火狐(我的是50.1.0)

apt-get install firefox

2- 下载最新的 geckodriver 来自this repo

3-解压下载的文件

tar -xvf geckodriver-v0.13.0-linux64.tar.gz

4-mv ./geckodriver /usr/bin

5-ln -s /usr/bin/geckodriver /usr/local/bin/.

【讨论】:

    【解决方案5】:

    对于像我这样浪费时间安装多个 firefox 版本以使其正常工作的人而言:如果您在没有显示的环境中运行测试(例如 SSH 到您的 vagrant box),则会出现相同的消息错误。

    sudo apt-get install xvfb
    
    #set display number to :99
    Xvfb :99 -ac &
    export DISPLAY=:99
    

    记得把它放在 .bashrc 中,因为它只在当前会话 shell 中有效。

    发件人:

    Is it possible to run selenium (Firefox) web driver without a GUI?

    【讨论】:

    • 这不是这个问题的答案
    • @parik 这实际上是问题的答案,因为错误消息是相同的: WebDriverException "The browser appears to have exited " 等等,我已经解决了这个问题。
    • @BangTheBank BangTheBank 在这个问题的情况下,我们使用 GUI,你的回答没有意义
    猜你喜欢
    • 2014-11-22
    • 2015-01-31
    • 2021-11-14
    • 2019-02-18
    • 2013-09-20
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多