首页 > 解决方案 > 量角器,无法从会话存储中获取正确的数据

问题描述

我是量角器的新手,我需要从会话存储中获取数据,我需要检查一个字段是否存在。我怎样才能做到这一点?我必须检查登录用户是否有字段“firstCode”的值。这是 sessionStorage 数据的示例:

{"bookCode":"CNMPPS","agency":"vu","topCode":"HHH4C","firstDate":"14042018","secondDate":"","firstCode":"ROM","secondCode":"ROM","carCode":"RM","market":"","lang":"en","customer":{"FieldNumber":"IKH8272HKS","title":"MR","firstName":"Mark","lastName":"Venium","email":"markvenium@hotmail.com","customerType":"","loyaltyTier":""}}

这是我的代码stepdefinitions.js

var j_userData = browser.driver.executeScript('sessionStorage.getItem("userData");');
var firstCode = JSON.parse(j_userData).firstCode;
expect(firstCode).to.not.be.null;

控制台返回给我这个:

SyntaxError: Unexpected token M in JSON at position 0
   at JSON.parse (<anonymous>)

有人可以帮我从 sessionStorage 中获取正确的字段值吗?谢谢你。

标签: javascriptprotractorautomated-testssession-storage

解决方案


如果您尝试直接从量角器访问窗口对象/浏览器范围,它可能会抛出“未定义窗口”等错误,因为当您尝试访问它时可能未加载/定义窗口对象/浏览器范围。

解决方案

browser.executeScript('return window.sessionStorage.getItem("myKey");').then(function (myValue) { console.log('testcase myValue == ', myValue); });

您将在myValue (console.log('testcase myValue == ', myValue))中获得整个对象。


推荐阅读