我正在开发一个利用库(PDF.js)的ember插件,该库依赖于内联样式在PDF渲染上构建DOM,以便在内联PDF查看体验中选择文本。
我可以在浏览器中运行测试并检查内联样式就好了,但是如果我在PhantomJS中使用ember exam
或ember test
运行它们(目前我们的工具不支持无头镀铬),则永远不会应用样式属性。我通过从测试中打印this.$()[0].innerHTML
并看到没有样式属性来验证这一点。
我注意到这种内联样式的剥离是通过PhantomJS中的web安全标志来支持的,通过settings config或command line interface,默认情况下设置为强制执行。看到我的应用程序的CSP允许内联样式,我想测试具有类似设置的用例。
有没有办法通过ember cli为PhantomJS提供配置或args?
可以使用phantom_args选项通过testem配置设置参数。
但是,问题不在于幻像中的任何安全设置。直接在HTMLElement.style上设置this.get('element')
属性不会在幻像中应用内联样式。您需要直接引用样式(例如,this.get('element').style.width = '100px';
)