我正在使用frisbyjs从couchdb获取实时数据,现在我需要通过应用程序验证indexeddb中保存的数据。是否可以使用量角器访问indexeddb?
答案 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');
});