我正在用Django和Selenium用PhantomJS编写一些单元测试。
除了我需要访问浏览器本地存储以验证我的令牌是否正确之外,事情似乎正在起作用。
到目前为止我的代码是:
from selenium.webdriver.phantomjs.webdriver import WebDriver
class UserSeleniumTestCase(StaticLiveServerTestCase):
@classmethod
def setUpClass(cls):
super(UserSeleniumTestCase, cls).setUpClass()
cls.selenium = WebDriver()
cls.selenium.implicitly_wait(10)
@classmethod
def tearDownClass(cls):
cls.selenium.quit()
super(UserSeleniumTestCase, cls).tearDownClass()
def setUp(self):
# create the users.
def test_login(self):
self.selenium.get(
'%s%s' % (self.live_server_url, reverse_lazy('account_login')))
self.assertIn(_('Sign In'), self.selenium.title)
login_input = self.selenium.find_element_by_name("login")
login_input.send_keys('test@example.com')
password_input = self.selenium.find_element_by_name("password")
password_input.send_keys('safe!')
self.selenium.find_element_by_id("btn_login").click()
self.selenium.get(
'%s%s' % (self.live_server_url, reverse_lazy('polls:poll-add')))
self.assertIn(_('Create Polls'), self.selenium.title)
print(self.selenium.execute_script('localStorage.getItem("token");'))
我的问题是,None
print(self.selenium.execute_script('localStorage.getItem("token");'))
print(self.selenium.execute_script('window.localStorage.getItem("token");'))
此时登录时应填充(在浏览器中工作正常)。我错过了什么吗?我也试过from
答案 0 :(得分:1)
是的,您必须从JS脚本返回才能在Python级别查看值:
print(self.selenium.execute_script('return localStorage.getItem("token");'))