量角器:sessionStorage变量

时间:2014-04-28 16:57:01

标签: html5 angularjs protractor

如何在量角器中获取sessionStorage变量的值?我试过了:

browser.executeScript('sessionStorage.getItem("login");');

但返回 null 。使用不带browser.executeScript()的sessionStorage.getItem()会为sessionStorage返回一个未定义的内容。

3 个答案:

答案 0 :(得分:7)

想通了。

browser.executeScript("return window.sessionStorage.getItem('login');");

答案 1 :(得分:4)

尝试使用browser.driver.executeScript代替browser.executeScript

browser.driver.executeScript('sessionStorage.getItem("login");');

使用browser developer tools手动确认您的javascript表达式sessionStorage.getItem("login");正常工作。

根据您的应用以及您为实现目标所采取的步骤,可能会过早请求会话存储项目。如果browser.driver.executeScript无法解决您的问题,请尝试在browser.sleep(4000);之前添加executeScript,以确定这是否是时间问题。

注意executeScript returns a webdriver promise所以除非你将其包裹在expect中,否则你可能需要这样:

browser.sleep(2000);
browser.driver.executeScript('sessionStorage.getItem("login");').then(function(retValue) {
    console.log(retValue);
});

答案 2 :(得分:1)

这不太对。它应该是......



browser.driver.executeScript('return window.sessionStorage.getItem("login");').then(function (retVal) {
  console.log(retVal);
});