如何使用behat mink扩展来检查disabled属性?

时间:2016-06-28 15:29:35

标签: php behat mink

我的功能中有一个场景,如果复选框已禁用属性,则我想编写脚本,然后返回true。

<input type="checkbox" class="checkbox-click" id="#checkbox-2" name="testcheck" value="where to go" disabled="disabled">

以下是我尝试但未成功的自定义:

    /**
     * check for is disabled or not
     *
     * @Then /^I check for is disabled "([^"]*)"$/
     */
    public function isDisabled($selector)
    {
        $session = $this->getSession();
        $element = $session->getPage()->find(
            'xpath',
            $session->getSelectorsHandler()->selectorToXpath('css', $selector) // just changed xpath to css
        );

        $return = $element->getAttribute('disabled');    
    }

我收到致命错误:getAttribute调用非对象。这不是完美的代码,但我在这里仅供参考。

1 个答案:

答案 0 :(得分:2)

这是因为您没有处理错误。如果找到该元素,Find方法返回该对象,否则它将返回null并且在null上使用getAttribute会导致致命异常,因为它不是对象。

你应该检查是否为null,如果是,则抛出异常。

您不需要将选择器用于xpath。 如果找不到该属性,也不会抛出任何错误。

作为验证,您可以在元素上使用方法hasAttribute()并逐个抛出异常。 你不能做的另一件事是使用条件等待。