使用GeckoDriver v0.31.0启动Firefox v103.0.2时遇NS_ERROR_UNKNOWN_HOST错误求助
关于NS_ERROR_UNKNOWN_HOST错误的排查与解决
问题场景
使用GeckoDriver v0.31.0、Selenium v4.4.0启动Firefox v103.0.2时,程序崩溃并抛出NS_ERROR_UNKNOWN_HOST错误。
错误信息
selenium.common.exceptions.SessionNotCreatedException: Message: Error: NS_ERROR_UNKNOWN_HOST
代码示例
from selenium import webdriver from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options import Log import sys print ("Python Version: " +str(sys.version_info)) import selenium print("Selenium version: " +selenium.__version__) log = Log() log.level = "trace" options = Options() options.add_argument(log.level) s = Service('C:\\BrowserDrivers\\geckodriver.exe') driver = webdriver.Firefox(service=s, options=options) driver.get('https://www.google.com/')
控制台输出及错误堆栈
Python Version: sys.version_info(major=3, minor=9, micro=0, releaselevel='final', serial=0) Selenium version: 4.4.0 Traceback (most recent call last): File "C:\Users\debanjan.bhattacharj\Desktop\Python Programs\Selenium_Firefox_tests.py", line 26, in <module> driver = webdriver.Firefox(service=s, options=options) File "C:\Users\user_name\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 177, in __init__ super().__init__( File "C:\Users\user_name\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 276, in __init__ self.start_session(capabilities, browser_profile) File "C:\Users\user_name\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 369, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "C:\Users\user_name\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 434, in execute self.error_handler.check_response(response) File "C:\Users\user_name\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: Error: NS_ERROR_UNKNOWN_HOST Stacktrace: #checkLoadingState@chrome://remote/content/shared/Navigate.jsm:239:28 onStateChange@chrome://remote/content/shared/Navigate.jsm:284:28
排查方向与解决方案
1. 日志参数配置错误
你代码里把日志级别直接作为命令行参数传给Firefox是错误的。Firefox的日志配置需要通过Options的log属性绑定,而非add_argument方法传递字符串。正确写法如下:
log = Log() log.level = "trace" options = Options() options.log = log # 替换原有的options.add_argument(log.level)
错误的参数传递会导致Firefox启动解析异常,进而触发网络相关的未知主机错误。
2. 版本兼容性验证
你使用的版本组合(GeckoDriver 0.31.0 + Firefox 103.0.2 + Selenium 4.4.0)理论上是兼容的:
- GeckoDriver 0.31.0官方支持Firefox 102-104版本
- Selenium 4.4.0对GeckoDriver 0.31.0的支持无问题
3. 网络环境排查
NS_ERROR_UNKNOWN_HOST本质是主机解析失败,可检查:
- 本地DNS是否正常,手动访问
https://www.google.com/确认网络连通性 - Firefox代理设置是否异常,可能导致启动时无法解析远程调试相关地址
- 防火墙或安全软件是否拦截了GeckoDriver与Firefox的通信
4. 同类问题参考
该错误在Firefox与GeckoDriver适配场景中并不少见,大多集中在日志参数配置错误、代理干扰或Firefox配置文件损坏这几个方向,已有不少用户遇到并通过修正配置解决问题。
总结
优先修正日志参数的配置方式,替换options.add_argument(log.level)为options.log = log,再逐步排查网络环境和Firefox配置问题。
内容的提问来源于stack exchange,提问作者undetected Selenium
相关产品推荐
相关产品推荐

