2012-12-20 6 views
8

동안 셀레늄 (아무 원격, 아니 Xvfb가), 난 항상 다음과 같은 예외가 장고 테스트를 실행 :깨진 파이프 오류 동안

Creating test database for alias 'default'... 

Traceback (most recent call last): 
File "/usr/lib/python2.7/wsgiref/handlers.py", line 86, in run 
self.finish_response() 
File "/usr/lib/python2.7/wsgiref/handlers.py", line 127, in finish_response 
self.write(data) 
File "/usr/lib/python2.7/wsgiref/handlers.py", line 210, in write 
self.send_headers() 
File "/usr/lib/python2.7/wsgiref/handlers.py", line 268, in send_headers 
self.send_preamble() 
File "/usr/lib/python2.7/wsgiref/handlers.py", line 192, in send_preamble 
'Date: %s\r\n' % format_date_time(time.time()) 
File "/usr/lib/python2.7/socket.py", line 324, in write 
---------------------------------------- 
Exception happened during processing of request from ('127.0.0.1', 44089) 
self.flush() 
File "/usr/lib/python2.7/socket.py", line 303, in flush 
self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 32] Broken pipe 
Traceback (most recent call last): 
File "/usr/local/lib/python2.7/dist-packages/django/test/testcases.py", line 981, in _handle_request_noblock 
self.process_request(request, client_address) 
File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request 
self.finish_request(request, client_address) 
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
self.RequestHandlerClass(request, client_address, self) 
File "/usr/local/lib/python2.7/dist-packages/django/core/servers/basehttp.py", line 139, in __init__ 
---------------------------------------- 
super(WSGIRequestHandler, self).__init__(*args, **kwargs) 
File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__ 
self.finish() 
File "/usr/lib/python2.7/SocketServer.py", line 693, in finish 
self.wfile.flush() 
File "/usr/lib/python2.7/socket.py", line 303, in flush 
self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 32] Broken pipe 

Destroying test database for alias 'default'... 

Process finished with exit code 0 

테스트는 장고 1.4을 사용하여 LiveServerTestCase 실행하고 Firefox WebDriver를 사용하여 셀레늄 Python 바인딩 2.28.0. 누군가 해결 방법에 대한 아이디어가 있습니까?

답변

6

페이지를 요청하는 브라우저가 응답을 기다리고 있는지 확인하십시오.

정확하게 기억한다면 selenium_client.implicitly_wait(sec)selenium_client.set_page_load_timeout(sec) 명령이 있으므로 사용하고 있는지 확인하십시오.

그렇지 않은 경우 서버는 응답을 보내기 전에 브라우저가 연결을 종료하기 때문에 끊어진 파이프에 쓰려고 시도합니다.

+2

고마워요! 'selenium_client.waitForPageToLoad (ms)'는 그 버전/파이썬 바인딩에 존재하지 않지만 암시 적 타임 아웃을 설정하는 것이 트릭입니다 :'selenium_client.implicitly_wait (sec)'와'selenium_client.set_page_load_timeout (sec)' – PenthousePauper

+0

@PenthousePauper please 답을 올바른 것으로 표시하십시오 :) –

+4

하지만 그렇지 않습니다. selenium_client.waitForPageToLoad (ms) 거기 있지 않습니다. –

관련 문제