【问题标题】:SecurityError: CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet error while reading CSS stylesheet using Selenium FirefoxSecurityError: CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet error while reading CSS stylesheet using Selenium Firefox
【发布时间】:2020-10-09 23:59:49
【问题描述】:

我将 Selenium 与 Java 和 Chrome/Firefox 驱动程序一起使用。

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("javascript.enabled", true);
profile.setPreference("security.fileuri.strict_origin_policy", false);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
capabilities.setCapability("acceptInsecureCerts",true);
FirefoxOptions options = new FirefoxOptions();
options.addCapabilities(capabilities);
WebDriver webDriver = new FirefoxDriver(options);

尝试读取 CSS 样式表

JavascriptExecutor js = ((JavascriptExecutor) driver);
Object properties = js.executeScript("return document.styleSheets");

我收到以下错误:

Exception in thread "main" org.openqa.selenium.WebDriverException: SecurityError: CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet

使用 chrome 驱动程序我收到错误 error reading property

我正在尝试获取页面的 document.styleSheets,但由于 CORS 规则,我无法获取。如何禁用它们?

【问题讨论】:

  • 您是否尝试过禁用您的扩展程序/插件——尤其是如果您拥有它的幽灵?

标签: java selenium firefox cross-domain selenium-firefoxdriver


【解决方案1】:

好像打错了。而不是documnent,您的意思可能是document。如此有效,您的代码行将是:

Object properties = js.executeScript("return document.styleSheets");

但是,这个错误信息...

Exception in thread "main" org.openqa.selenium.WebDriverException: SecurityError: CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet

...暗示 cssRules getter() 方法被阻止访问 跨域样式表


详情

根据Unable to access cssRules property DOMException: "CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet" 中的讨论,即使您的应用程序可能没有任何跨域样式表,如果您使用,这些跨域样式表 em> 由Ghostery 浏览器扩展注入。

因此,一个快速的解决方案是禁用Ghostery extension 来解决问题。

【讨论】:

  • 您好,感谢您提供的信息,我更正了评论中的错字。不幸的是,错字不是我的问题。
猜你喜欢
  • 2021-08-08
  • 2020-10-19
  • 2020-03-09
  • 2020-12-10
  • 1970-01-01
  • 2019-03-03
  • 2019-07-30
  • 2021-03-08
  • 1970-01-01
相关资源
最近更新 更多