【问题标题】:Delete all IndexedDB databases for website删除网站的所有 IndexedDB 数据库
【发布时间】:2022-01-07 09:51:11
【问题描述】:

如何清除页面上所有indexedDB数据库? 我需要一些可以作为 Selenium webdriver 测试的一部分执行的 JS 脚本,以完全擦除页面上的 indexedDB 数据。

【问题讨论】:

    标签: selenium-webdriver webdriver indexeddb


    【解决方案1】:

    很遗憾,这不是真正可靠的解决方案,并且没有在 Firefox 中进行测试:

    indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args){
        for (let dbname of sender.target.result) {
            indexedDB.deleteDatabase(dbname)
        }
    };
    

    希望有任何反馈

    【讨论】:

    • webkitGetDatabaseNames 仅限 Chrome,Firefox、Safari 或 Edge 不支持。有一些关于添加标准版本的讨论github.com/w3c/IndexedDB/issues/31
    • 如果您知道数据库名称,那么只需避免获取数据库名称。 deleteDatabase 本身不是问题。
    【解决方案2】:

    只是因为在我搜索完全相同的东西时出现了这个问题:

    let dbs = await indexeDB.databases();
    for(let db of dbs){
        indexedDB.deleteDatabase(db.name);
    }
    

    返回一个可迭代的数据库列表。

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多