我正在处理一个使用 Geb 的项目。 -- 我需要创建一个挂钩到 before 元素的选择器。
backgroundImageStyles(required: false) { $('.element:before')}
然后评估样式
landingPage.heros[0].backgroundImageStyles.css("background") == '#000000'
但这不起作用 - 我还需要测试背景不透明度 - 就像这个渐变中的 0.2 一样
background: linear-gradient(to top right, #000000 0%, rgba(3, 124, 104, 0.2) 100%);
您可能知道,Geb 正在使用 Selenium WebDriver 来选择浏览器中的元素,据我所知,不可能使用 Selenium 选择::before
和::after
伪元素,因为它们在 DOM 中并不真正存在。
作为旁注,我建议重新考虑您的测试。我可能没有全貌,也不了解您究竟要测试什么以及是否有更好的方法可以做到这一点,但总的来说,在浏览器测试中断言样式几乎从来都不是正确的做法。