有没有办法测试某些元素的css参数(来自css样式表)?例如。段落的颜色。或者div的背景颜色......
我知道selenium2测试框架可以做到这一点,但是在使用selenium2驱动程序的Behat + Mink中我找不到怎样的方法。
提前致谢。
答案 0 :(得分:4)
是的,您需要使用Selenium2驱动程序以及Behat和Mink +自定义JS调用来验证特定样式。下面的示例(Behat 3)使用jQuery断言div.myClass
color
属性是预期的。它将脚本发送给Selenium,后者对其进行评估并返回结果,您可以像往常一样在PHP中处理。
<?php
class MyContext extends RawMinkContext
{
/**
* @Then /^The div.myClass color should be black$/
*/
public function assertCssValue()
{
// JS script that makes the CSS assertion in the browser.
$script = <<<JS
(function(){
return $('div.myClass').css('color') === 'rgb(0, 0, 0)';
})();
JS;
if (!$this->getSession()->evaluateScript($script)) {
throw new Exception();
}
}
}
您可以轻松地将其扩展为更通用的实例,该实例将执行所有不同类型的断言,但大多数逻辑将在JS中。
此外还有其他CSS测试框架/替代方案,如PhantomCSS,理论上应该通过Selenium Driver和Mink与PhantomJS一起使用。 Google&#34; css测试框架&#34;为此...