【问题标题】:Python Selenium cannot connect to Webdriver Firefox extensionPython Selenium 无法连接到 Webdriver Firefox 扩展
【发布时间】:2013-09-30 14:43:03
【问题描述】:

我正在使用 Python 2.7、Selenium 2.35 和 Firefox 22.0。当我这样做时:

from selenium import webdriver

d = webdriver.Firefox()

Firefox 浏览器打开并保持打开状态。在控制台中抛出以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 61, in __init__
    desired_capabilities=capabilities)
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 72, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 114, in start_session
    'desiredCapabilities': desired_capabilities,
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 165, in execute
    self.error_handler.check_response(response)
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 136, in check_response
    raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: u''

然后我启动了 Fiddler 并尝试再次初始化 webdriver.Firefox 对象:

d = wedriver.Firefox()

与上述相同的错误。 Fiddler 显示以下输出:

{"name":"newSession","status":13,"value":{"message":"b is undefined","stackTrace":[{"methodName":"wdSessionStoreService.prototype.extractCapabilitySetting_",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/session_store.js",
"lineNumber":7951},{"methodName":"wdSessionStoreService.prototype.createSession",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/session_store.js",
"lineNumber":7944},{"methodName":"nsCommandProcessor.prototype.newSession",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/command_processor.js",
"lineNumber":10982},{"methodName":"nsCommandProcessor.prototype.execute",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/command_processor.js",
"lineNumber":10875},{"methodName":"Dispatcher.executeAs/<",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/driver_component.js",
"lineNumber":7750},{"methodName":"Resource.prototype.handle",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/driver_component.js",
"lineNumber":7896},{"methodName":"Dispatcher.prototype.dispatch",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/driver_component.js","lineNumber":7843},{"methodName":"WebDriverServer/<.handle","fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/driver_component.js","lineNumber":10710},{"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/httpd.js","lineNumber":1935},{"methodName":"ServerHandler.prototype.handleResponse","fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/httpd.js","lineNumber":2261},{"methodName":"Connection.prototype.process","fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/httpd.js","lineNumber":1168},{"methodName":"RequestReader.prototype._handleResponse","fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/httpd.js","lineNumber":1616},{"methodName":"RequestReader.prototype._processBody","fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/httpd.js","lineNumber":1464},{"methodName":"RequestReader.prototype.onInputStreamReady",
"fileName":"file:///c:/users/username/appdata/local/temp/tmpzqvpr1/extensions/fxdriver@googlecode.com/components/httpd.js","lineNumber":1333}]}}

如果我加载 localhost:57554 我会得到:

httpd.js

If you're seeing this page, httpd.js is up and serving requests! Now set a base path and serve some files!

所以 Webdriver 似乎可以正常工作,但由于某种原因 Python 无法启动会话。 以前有人遇到过这个问题吗?这是什么原因造成的?

【问题讨论】:

    标签: python firefox selenium


    【解决方案1】:

    此问题是由 HTTP_PROXY 环境变量引起的。通过控制面板更改 Windows 设置不会更改环境变量的值。在实例化 webdriver 之前从 Python 环境中删除变量可以解决问题:

    import os
    
    if 'HTTP_PROXY' in os.environ:
        os.environ.pop('HTTP_PROXY')
    

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 2015-06-22
      • 2017-08-16
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多