是否可以使用Behat + Mink测试CSS样式表?

时间:2014-08-25 21:13:12

标签: php css testing behat mink

有没有办法测试某些元素的css参数(来自css样式表)?例如。段落的颜色。或者div的背景颜色......

我知道selenium2测试框架可以做到这一点,但是在使用selenium2驱动程序的Behat + Mink中我找不到怎样的方法。

提前致谢。

1 个答案:

答案 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;为此...