[英]Python Selenium cannot connect to Webdriver Firefox extension
我正在使用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無法啟動會話。 有人以前有過這個問題嗎? 是什么原因造成的?
此問題是由HTTP_PROXY環境變量引起的。 通過控制面板更改Windows設置不會更改環境變量的值。 在實例化webdriver之前從Python環境中刪除變量可解決此問題:
import os
if 'HTTP_PROXY' in os.environ:
os.environ.pop('HTTP_PROXY')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.