我有一个 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/