【发布时间】:2013-12-07 06:42:58
【问题描述】:
我试图为其创建步骤定义的要求之一是每个元素都应该被编号。是否有用于检查项目是否具有正确的 CSS 生成内容的 API?
我们正在使用 Selenium、Cucumber 和 Capybara 来测试我们的应用。
我们想要自动测试的 CSS:
ul {
counter-reset: steps;
}
li:before {
content: counter(steps) ".";
counter-increment: steps;
}
或者,我们可以将实际内容放在 DOM 中,但我不喜欢仅仅为了满足 webdriver 而编写代码,这是解决编号问题的一个很好的解决方案,或者坚持手动测试这种行为。
编辑: 澄清一下,我认为这需要外部 API 进行查询,例如 Selenium Webdriver,因为 getComputedStyle 不会返回实际呈现的内容:http://jsfiddle.net/yTUnt/
【问题讨论】:
-
生成的内容仅适用于
:before和:after伪元素 - 你确定你的 CSS 是正确的吗? -
@BoltClock'saUnicorn 不,不,我没有:D 纠正 - 谢谢!
-
好吧,您不能使用标准 API(DOM、CSSOM、...)。您的目标是哪些浏览器?
-
@CarloCannas 是的,意识到这一点。我想我希望 Webdriver 能为这些伪元素提供某种接口。在这种情况下,目标是 Firefox。
-
@SimonScarfe:我从未使用过 Selenium,但我查看了它的源代码和文档,但找不到任何对这个问题有用的东西。即使在 Firefox 中也没有访问 CSS 生成内容的 JavaScript API,我只设法找到了一个能够获取生成内容的可访问性测试用例,但它需要 chrome 权限,因此您需要修补 Selenium 驱动程序。这是:mxr.mozilla.org/mozilla-central/source/accessible/tests/…
标签: css selenium cucumber css-content