【发布时间】:2015-10-10 23:38:05
【问题描述】:
我正在尝试为用户在访问某些 url 之前不需要登录的项目创建功能测试。为此,我创建了一个预身份验证会话,以诱使网站认为测试用户已经登录。
我用虚拟 url 加载了一个 webdriver 实例,在 dbase 中创建一个虚拟用户,在后端设置会话,然后将会话 cookie 添加到 web 驱动程序,如下所示:-
from django.utils.importlib import import_module
def load_dummy_url(self):
driver.get(self.live_server_url + '/404-not-found')
def create_session_store():
engine = import_module(settings.SESSION_ENGINE)
store = engine.SessionStore()
store.save()
return store
def pre_create_login():
user = get_user_model().objeects.create_user(email='user@testmail.com', first_name='user1', password='pass1')
session_store = create_session_store()
session_store[SESSION_KEY] = user.pk
session_store.save()
return session_store.session_key
def add_cookie_to_browser():
driver.add_cookie(dict(name=settings.SESSION_COOKIE_NAME, value= pre_create_login()))
但是,加载另一个需要用户身份验证的 url 仍然会重定向到登录页面,因为请求包含 AnonymousUser,因为测试站点认为用户未登录。
这里有什么问题吗?
注意:上面的 sn-ps 没有遵循良好的编码模式。它只是精确代码的简单复制。
【问题讨论】:
标签: python django python-3.x selenium