首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >会导致错误:服务geckodriver意外退出。状态代码为:-11

会导致错误:服务geckodriver意外退出。状态代码为:-11
EN

Stack Overflow用户
提问于 2019-01-02 15:51:16
回答 1查看 5K关注 0票数 5

我一直为此绞尽脑汁。我得到了错误:

系统驱动程序意外退出。状态代码:-11。

我使用的是一个Linux服务器,它是一个共享的托管web服务器。我把一切都建立在虚拟环境中。

  • Linux CentOS,发行版: 7.4.1708
  • Selenium版本3.141.0
  • geckodriver版本0.23.0
  • Firefox 60.3.0
  • Python3.6.2不能使用更新版本

Python、Selenium和Geckodriver驻留在Linux web服务器上的虚拟环境中。Firefox驻留在虚拟环境之外。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PATH=$PATH:/path/to/geckodriver

到我的终端,让geckodriver在PATH环境变量中使用。

下面是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/home/DIRECTORY/DIRECTORY/DIRECTORY/venv/bin/python

# -*- coding: UTF-8 -*-
import cgitb
import cgi
from selenium import webdriver
from selenium.webdriver import FirefoxOptions

cgitb.enable()
print ("Content-Type: text/html; charset=utf-8\n\n")
path = r'/home/DIRECTORY/DIRECTORY/DIRECTORY/venv/bin/geckodriver'
binary = FirefoxBinary(r'/usr/lib64/firefox')

opts = FirefoxOptions()
opts.add_argument("--headless")

browser = webdriver.Firefox(firefox_options=opts, firefox_binary=binary, executable_path=path)
rowser.get("http://google.com/")
print ("Headless Firefox Initialized")
browser.quit()

以下是我的跟踪错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Traceback (most recent call last):
File "selen.py", line 20, in <module>
browser = webdriver.Firefox(firefox_options=opts, executable_path=path)
File "/home/DIRECTORY/DIRECTORY/DIRECTORY/venv/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
self.service.start()
File "/home/DIRECTORY/DIRECTORY/DIRECTORY/venv/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 98, in start
self.assert_process_still_running()
File "/home/DIRECTORY/DIRECTORY/DIRECTORY/venv/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 111, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service /home/DIRECTORY/DIRECTORY/DIRECTORY/venv/bin/geckodriver unexpectedly exited. Status code was: -11

为什么我要得到这个错误,以及如何修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-04 09:33:49

这至少是对你问题的部分回答。

过去,某些版本的Selenium与Firefox和/或geckodriver的某些版本不能很好地协同工作,因此存在一些问题。找到您的版本,如果可能的话,将它们更新到最新的版本,并为您的版本查找现有的bug报告。

在我的Ubuntu18.04LTS仿生海狸系统上,以下版本可以很好地协同工作:

  • 检查Python版本 $ python3 --版本Python3.6.7
  • 检查Selenium版本 $ python3 -c“导入selenium;print(selenium.__version__)”3.141.0
  • 检查Firefox版本 $ firefox -版本Mozilla Firefox 64.0
  • 检查geckodriver版本 $ geckodriver -版本的geckodriver0.23.0( 2018-10-04)这个程序的源代码可以从https://hg.mozilla.org/mozilla-central中的测试/ geckodriver获得。此程序受Mozilla公共许可证2.0条款的约束。您可以在https://mozilla.org/MPL/2.0/获得许可证的副本。

如果必须浏览到特定路径才能使这些命令正常工作,而且这些命令不能直接在终端或虚拟环境中工作,则可能需要在调用webdriver.Firefox时设置以下关键字参数之一

  • firefox_binary - FirefoxBinary的实例或火狐二进制文件的完整路径。如果未定义,将使用系统默认Firefox安装。
  • executable_path -完全路径覆盖用于Firefox47.0.1及更高版本的geckodriver二进制文件,默认情况下从系统路径中提取二进制文件。

没有什么花哨的测试,而是只在无头模式下使用Firefox的一个最小的Selenium示例,例如minimal_selenium_test.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import selenium.webdriver

options = selenium.webdriver.FirefoxOptions()
options.add_argument("--headless")

driver = selenium.webdriver.Firefox(firefox_options=options)
driver.get('https://www.python.org/')
print(driver.title)
driver.close()

这应该适用于本地膝上型计算机、虚拟服务器以及Docker容器内,并且应该打印:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python3 minimal_selenium_test.py 
Welcome to Python.org
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54014683

复制
相关文章
测试代码时你会犯的 11 个错误
我遇到的大多数开发人员都不怎么热衷于测试。有些会去做测试,但大多数都不测试,不愿意测试,或者勉而为之。我喜欢测试,并且比起编写新的代码,愉快地花更多的时间在测试中。我认为,正是因为专注于测试,我才可以花更少的时间来编写新的代码或修复bug,并且非常有成效。
哲洛不闹
2018/09/18
3830
测试代码时你会犯的 11 个错误
面试官:哪些原因会导致JAVA进程退出?
值此七夕佳节,烟哥放弃了无数妹纸的邀约,坐在电脑面前码字,就是为了给读者带来新的知识,这是一件伟大的事业! 好吧,实际情况是没人约。为了化解尴尬,我决定卖力写文章,嗯,一定是我过于屌丝! 好了,开始说重点。今天讲的这个问题
乔戈里
2019/11/18
2.7K0
面试官:哪些原因会导致JAVA进程退出?
geckodriver linux
下载对应的 geckodriver 压缩包 https://github.com/mozilla/geckodriver/releases
李玺
2021/11/22
5030
geckodriver linux
Tomcat进程意外退出,元凶居然是他...
节前某个部门的测试环境反馈tomcat会意外退出,我们到实际环境排查后发现不是jvm crash,日志里有进程销毁的记录,从pause到destory的整个过程:
用户2781897
2019/09/24
4.1K1
Tomcat进程意外退出,元凶居然是他...
MySQL为Null会导致5个问题,个个致命!
在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示:
磊哥
2021/01/04
1.9K0
MySQL为Null会导致5个问题,个个致命!
OpenStack命令标识虚拟机为错误状态
提示:对于正常主机实例,当状态标识为error时,并不会对主机做关闭,删除等操作,只是无法通过ssh等方式对其进行管理,当标识为active后立马一切正常。
院长技术
2020/06/13
9430
[译] SIGSEGV:Linux 容器中的分段错误(退出代码 139)
SIGSEGV,也称为分段违规或分段错误,是基于 Unix 的操作系统(如 Linux)使用的信号。它表示程序尝试在其分配的内存之外进行写入或读取,由于编程错误、软件或硬件兼容性问题或恶意攻击(例如缓冲区溢出)。
CS实验室
2022/08/01
8.3K0
[译] SIGSEGV:Linux 容器中的分段错误(退出代码 139)
redis Windows 服务 启动异常,错误1067:进程意外终止。 原
注意这个命令中使用的是 redis.windows-service.conf 这个配置文件
北漂的我
2019/05/29
5.4K0
电脑开机错误代码0xc0000428_状态为0xc0000428
有用户反馈电脑启动时,屏幕突然出现错误码0xc0000428,无法进入系统。本文将针对这个问题,分析出现错误码0xc0000428的原因,并为大家提供解决方案。
全栈程序员站长
2022/11/10
3.3K0
囧...执行analyze table意外导致waiting for table flush
以前记录的文章中的案例2,但是其实并不一样,这里是由于analyze table语句造成的。
老叶茶馆
2021/02/23
7560
囧...执行analyze table意外导致waiting for table flush
这样终止线程,竟然会导致服务宕机?
或许你已经发现了,上面这段代码使用了 Thread.stop() 来终止线程,在 Java 程序中是不允许这样终止线程的。什么?你问为什么不能这样?
磊哥
2020/04/08
5170
主线程异常会导致 JVM 退出?
上周线程崩溃为什么不会导致 JVM 崩溃在其他平台发出后,有一位小伙伴留言说有个地方不严谨
kunge
2022/09/02
1.4K0
主线程异常会导致 JVM 退出?
【已解决】error MSB6006: “rc.exe”已退出,代码为5 || 代码为2
error MSB6006: “rc.exe”已退出,代码为5 C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64 C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64 这两个都可以
用户3519280
2023/07/08
1.2K0
Linux知识之退出状态码
shell命令的退出状态码都有特殊的意义,用来显示命令退出时的状态,更多地给外部使用.shell退出状态码是一个0~255之间的整数值.通常成功返回0,失败返回非0(错误码).
Qt君
2019/07/16
5.4K0
命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思?
发布于 2018-03-09 00:44 更新于 2018-04-16 10:56
walterlv
2018/09/18
7.2K0
震惊!这样终止线程,竟然会导致服务宕机?
或许你已经发现了,上面这段代码使用了 Thread.stop() 来终止线程,在 Java 程序中是不允许这样终止线程的。什么?你问为什么不能这样?
磊哥
2020/04/06
5070
震惊!这样终止线程,竟然会导致服务宕机?
Typecho分隔符导致意外空白修复
在网上查看很多的帖子都是在 hypedown模块中注释掉对 \n 的解析 这样的做法是不行的,因为这样文章中的换行就会失效,所有的文字就堆到一起了。
雪碧君
2023/02/13
2640
点击加载更多

相似问题

Selenium Firefox webdriver导致错误:服务geckodriver意外退出。状态码为:2

32

Selenium失败时出错:服务geckodriver意外退出。状态代码为:2

23

无法通过selenium geckodriver启动firefox浏览器,出现错误:服务geckodriver意外退出。状态代码为:-9

127

selenium.common.exceptions.WebDriverException:消息:服务geckodriver意外退出。状态代码为: 69

11

selenium.common.exceptions.WebDriverException:消息:服务geckodriver意外退出。状态码是:-11 -如何修复?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文