我在Java和Chrome/Firefox驱动程序中使用Selenium。
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使用铬驱动程序,我得到了错误error reading property。
我正在尝试获取页面的document.styleSheets,但由于CORS的规则,我做不到。如何使它们失效?
发布于 2020-06-19 17:11:04
看上去像是个错误。而不是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...implies表示,cssRules getter()方法被阻止访问跨源样式表。
详细信息
根据无法访问cssRules属性DOMException:"CSSStyleSheet.cssRules getter:不允许访问跨源样式表“中的讨论,即使您的应用程序可能没有任何跨源样式表以防止您使用火狐,但这些跨源样式表是通过鬼怪浏览器扩展注入的。
因此,一个快速的解决方案是禁用鬼怪扩展来解决这个问题。
https://stackoverflow.com/questions/62475212
复制相似问题