javascript - 从 firefox 扩展范围访问 localStorage

标签 javascript selenium selenium-webdriver google-chrome-extension firefox-addon

我有一个 Selenium 程序,运行 Chrome/Firefox Web 驱动程序,并在每个浏览器上运行我的扩展程序。该扩展是通用的,每次程序运行时都会使用 localStorage 将不同的配置加载到扩展。

流程是:

启动安装了扩展的网络驱动程序。

导航到具有扩展程序范围的网页:在 Chrome 中 - chrome:chrome-extension://eebpfcjkplahlajlfagjnopfnhjngnje/startup.png 在 Firefox 中 - moz-extension://870f3a82-b6d0-7c40-a261-a9ae20fabc7d/manifest。 json

运行js代码:

localStorage.setItem('blocks', JSON.stringify({urls:['https://*/*css*','http://*/*css*','https://*/*png*','http://*/*png*']}));

然后,扩展程序将与 localStorage 中新添加的值同步并执行操作。

Chrome 中一切运行良好。在 Firefox 中,我无法在扩展的作用域页面上运行 js 代码,出现以下错误:

SecurityError: The operation is insecure.

我知道 FF 在上一个版本中更改了整个 API 的扩展,我想知道实现我的目标的正确方法是什么。

总的来说,我正在寻找一种在 selenium Web 驱动程序和扩展之间共享数据的方法。

最佳答案

解决方案是将 Firefox 版本升级到 61.0.2 在最新版本中,扩展 API 与 Chrome 中的相同,并且按预期工作。

关于javascript - 从 firefox 扩展范围访问 localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006926/

相关文章:

javascript - 创建 View 实例时,Backbone.js 不是构造函数错误

Java Selenium 检查复选框标签状态

python - 使用 Python 获取所有打开的标签页的 URL

xpath - css/xpath选择器,用于在使用Selenium Webdriver(java)时排除元素中的子节点

node.js - 在 NodeJS selenium-webdriver 中,如何获取元素的 innerHTML

javascript - 在 Javascript 中构建复杂的 JSON

javascript - 将 Observable<String[]> 转换为 Observable<DataType[]>

javascript - 如何访问特定的 Web 元素 Selenium Python

c# - 如何连接到已经打开的浏览器?

javascript - 使用 lodash 动态计算嵌套集合的平均值