java - Selenium Java + Chrome + ModHeader:无法从“Window”读取“localStorage”属性:拒绝访问此文档
问题描述
我愿意设置一个特定的 Authorization 标头值以运行 Selenium Java 测试。
为此,我下载了 ModHeader 扩展。
这就是我实例化我的驱动程序的方式:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("\\path\\to\\ModHeader.crx"));
driver = new ChromeDriver(options);
这就是我尝试使用 ModHeader 的方式(是的,我在 StackOverflow 上使用了这个,哈哈)。
driver.get("chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/_generated_background_page.html");
JavascriptExecutor js;
js = (JavascriptExecutor)driver;
js.executeScript("localStorage.setItem('profiles', JSON.stringify([{ " +
" title: 'Selenium', hideComment: true, appendMode: '', " +
" headers: [ " +
" {enabled: true, name: 'Authorization', value: 'Bearer esldfnWhateverjnfksjd..--', comment: ''} " +
" ], " +
" respHeaders: [], " +
" filters: [] " +
"}]));
但是,运行时会引发错误executeScript
:
org.openqa.selenium.WebDriverException: <unknown>: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
我更改了我的 Chrome 配置,以便允许所有 cookie,但它没有改变任何东西。
任何想法?
解决方案
推荐阅读
- debugging - gdb 我在调试什么文件
- java - UnboundLocalError:分配之前引用的局部变量“submit_args”-Pyspark
- android-studio-3.0 - androidTestImplementation 使用较新版本的测试运行程序时出错
- java - 如何在 ASM 中编写本机代码
- sockets - 模仿S7西门子PLC
- python - Pandas 数据框的条件分组
- arrays - 在Swift 4中使用for循环填充数组而不使用索引
- angular - 从组件到组件的角度重用属性
- assembly - 强制 GNU AS 使用替代
- javascript - JavaScript 增加按钮只增加一次