我有一个运行Chrome / Firefox网络驱动程序的Selenium程序,每个浏览器都有我的扩展程序。扩展名是通用的,每次程序运行时,都会使用localStorage将不同的配置加载到扩展名。
流程为:
启动安装了扩展程序的Web驱动程序。
导航到扩展程序范围的网页:在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网络驱动程序和扩展程序之间共享数据的方法。
答案 0 :(得分:0)
解决方案是将Firefox版本升级到61.0.2 在最新版本中,扩展程序API与Chrome中的相同,并且可以正常工作。