Selenium测试未正确处理django中间件

Selenium测试未正确处理django中间件,django,python-3.x,selenium,Django,Python 3.x,Selenium,我正在使用Django框架,每次成功登录我的站点时都会出现此错误。所以,是的,不正确的登录不会触发它。它不会影响站点或我的测试,但是stacktrace对每个测试都很烦人。我将Python3和django 2与django adminlte cruds和django guardian一起使用 这是完整的stacktrace,我完全不知道我的代码会导致这个错误,我也看过其他关于相同错误的帖子,但找不到任何适用于我的代码的东西 Traceback (most recent call last):

我正在使用Django框架,每次成功登录我的站点时都会出现此错误。所以,是的,不正确的登录不会触发它。它不会影响站点或我的测试,但是stacktrace对每个测试都很烦人。我将Python3和django 2与django adminlte cruds和django guardian一起使用

这是完整的stacktrace,我完全不知道我的代码会导致这个错误,我也看过其他关于相同错误的帖子,但找不到任何适用于我的代码的东西

Traceback (most recent call last):   File "/usr/lib/python3.5/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return super().__call__(environ, start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 146, in __call__
    response = self.get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 62, in get_response
    return super().get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/base.py", line 81, in get_response
    response = self._middleware_chain(request) TypeError: 'NoneType' object is not callable Traceback (most recent call last):   File "/usr/lib/python3.5/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return super().__call__(environ, start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 146, in __call__
    response = self.get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 62, in get_response
    return super().get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/base.py", line 81, in get_response
    response = self._middleware_chain(request) TypeError: 'NoneType' object is not callable Traceback (most recent call last):   File "/usr/lib/python3.5/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return super().__call__(environ, start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 146, in __call__
    response = self.get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 62, in get_response
    return super().get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/base.py", line 81, in get_response
    response = self._middleware_chain(request) TypeError: 'NoneType' object is not callable Traceback (most recent call last):   File "/usr/lib/python3.5/wsgiref/handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__
    return super().__call__(environ, start_response)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/wsgi.py", line 146, in __call__
    response = self.get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/contrib/staticfiles/handlers.py", line 62, in get_response
    return super().get_response(request)   File "/home/ellen/.virtualenvs/purple_box/lib/python3.5/site-packages/django/core/handlers/base.py", line 81, in get_response
    response = self._middleware_chain(request) TypeError: 'NoneType' object is not callable
请让我知道我如何能澄清更多,如果你有任何关于修复的提示。谢谢

编辑: 我的主页视图

@login_required
def base(request):
    """
    View function for home page of site.
    """

    # Render the HTML template base.html with the data in the context variable
    return render(request, 'cruds/base.html', context={},)
编辑2: 顺便说一句,当我执行功能测试(Selenium)时会发生这种情况。在我的单元测试期间,或者当我自己登录到站点并检查服务器日志时,不会发生这种情况

应要求:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Selenium setup-definitions.py:

class UserBaseSeleniumTestCase(StaticLiveServerTestCase):
    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        cls.testuser = User.objects.create_user(
            username='testuser', password=ROLES["testuser"])
        cls.testuser.is_active = True
        cls.testuser.save()
        cls.browser = webdriver.Firefox()
        cls.browser.get(cls.live_server_url)

    @classmethod
    def tearDownClass(cls):
        cls.browser.quit()
        super().tearDownClass()

    def login(self, username, password):
        self.browser.get('%s%s' % (self.live_server_url,
                               reverse_lazy("login")))
        username_input = self.browser.find_element_by_name("username")
        username_input.send_keys(username)
        password_input = self.browser.find_element_by_name("password")
        password_input.send_keys(password)
        self.browser.find_element_by_name("login").click()
test.py-出现错误的测试之一,任何成功登录的测试都会出现错误:

class CorrectLoginTestCase(UserBaseSeleniumTestCase):
    def test_correct_login(self):
        self.login('testuser', ROLES["testuser"])
        expected_url = self.live_server_url + '/home/'
        self.assertEqual(self.browser.current_url, expected_url)

显示你的视图,模型你可以粘贴你的登录方法吗?因为它一定是从那里你在这里得到一个错误,我没有发现任何错误errors@AbiWaqas我只有一个带有登录表单和提交按钮的html页面,登录由django处理。查看堆栈跟踪,我发现
self.\u middleware\u chain(request)
是问题所在。由于某种原因,
\u中间件\u链
。我想看看你是如何设置硒测试的。你能分享一下失败的测试吗?它是针对实时服务器实例进行测试,还是selenium与您的测试服务器在同一进程中运行?有一个bug报告已经解决了。