Broken Pipe Error while running django-test with selenium

匿名 (未验证) 提交于 2019-12-03 02:06:01

问题:

while running django tests with selenium (no remote, no xvfb), I always get the following exception:

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 

Tests are run with LiveServerTestCase using django 1.4 and selenium python-bindings 2.28.0 with Firefox WebDriver. Does someone have an idea, on how to resolve it?

回答1:

Make sure that the browser requesting the page is waiting for the response.

If i remember correctly there is the selenium_client.implicitly_wait(sec) and selenium_client.set_page_load_timeout(sec) commands for that, make sure you are using it.

If not the server will try to write to a pipe that is broken because the browser close the connection before the response was sent.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!