【问题标题】:Unable to launch firefox browser via selenium geckodriver with error : Service geckodriver unexpectedly exited. Status code was: -9无法通过 selenium geckodriver 启动 Firefox 浏览器,出现错误:服务 geckodriver 意外退出。状态码是:-9
【发布时间】:2022-01-24 06:33:52
【问题描述】:

代码块:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

from selenium.webdriver.firefox.service import Service
from selenium.webdriver.firefox.options import Options

new_driver_path = '/Users/username/Desktop/Python/geckodriver'
new_binary_path = '/Applications/Firefox.app/Contents/MacOS/firefox-bin'

ops = Options()
ops.binary_location = new_binary_path
serv = Service(new_driver_path)
driver = webdriver.Firefox(service=serv, options=ops)

在运行上述 python 程序时,我收到以下错误。

Traceback (most recent call last):
  File "prog.py", line 13, in <module>
driver = webdriver.Firefox(service=serv, options=ops)
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
self.service.start()
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 98, in start
self.assert_process_still_running()
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 112, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service /Users/chetanparakh/Desktop/Python/geckodriver unexpectedly exited. Status code was: -9

我可能错了,但 new_binary_path 似乎有问题。

【问题讨论】:

  • 仅供参考:此用户不接受答案
  • @Prophet 过去 2 年没有使用堆栈溢出,因此没有检查任何响应。

标签: selenium selenium-webdriver firefox geckodriver selenium-firefoxdriver


【解决方案1】:

此错误消息...

self.assert_process_still_running()
  File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 112, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service /Users/chetanparakh/Desktop/Python/geckodriver unexpectedly exited. Status code was: -9

...暗示GeckoDriver 的先前实例仍然存在,因此程序无法启动/生成新的GeckoDriver 进程。


解决方案

始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

【讨论】:

  • 如何检查以前的 GeckoDriver 实例是否仍然存在?
  • @Chetan 通常在 Windows 系统中我会打开任务管理器。
猜你喜欢
  • 2017-01-11
  • 2017-04-21
  • 2019-05-29
  • 2017-08-31
  • 2019-03-13
  • 2019-05-28
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
相关资源
最近更新 更多