如何使用量角器访问indexedb

时间:2015-05-20 08:31:51

标签: jasmine protractor

我正在使用frisbyjs从couchdb获取实时数据,现在我需要通过应用程序验证indexeddb中保存的数据。是否可以使用量角器访问indexeddb?

1 个答案:

答案 0 :(得分:3)

您可以使用executeScript访问客户端上的任何内容。

  //protrator.conf.js
  onPrepare: function () {
    global.getFromLocalStorage = function (key) {
      return browser.executeScript(function (key) {
        return localStorage.get(key);
      }, key);
    };

然后,在测试中使用它:

//user-spec.js
it('should save user to localstorage', function () {
  expect(getFromLocalStorage('user-profile').name).to.Contain('Jorge');
});

<强>更新: 现在,如果没有存储的同步访问权限(例如在IndexedDB中),则您希望改为使用executeAsyncScript:

  //protrator.conf.js
  onPrepare: function () {
    global.getFromIndexedDB = function (key) {
      return browser.executeAsyncScript(function (key, cb) {
        window.myDB.get(key).onsuccess = function (e) {
          cb(e.target.result);
        }
      }, key);
    };

//user-spec.js
it('should save user to indexeddb properly', function () {
  expect(getFromIndexedDB('user-profile').name).to.Contain('Jorge');
});