php - 如何使用 behat mink 扩展检查禁用属性?

标签 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');    
    }

我收到 fatal error :getAttribute 调用非对象。这不是完美的代码,但我只是在这里给出供引用。

最佳答案

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

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

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

作为验证,您可以在元素上使用 hasAttribute() 方法并根据情况抛出异常。 您可以做的另一件事是使用条件等待。

关于php - 如何使用 behat mink 扩展检查禁用属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38080405/

相关文章:

php - 如何链接两台不同机器上的两个mysql数据库?

php - Mysql 联合命令不工作

php - Behat - 检查损坏的图像链接

button - 使用 Behat 检查单选按钮

php - Mink 实例尚未在 Mink 上下文类上设置。您是否启用了 Mink 扩展? (运行时异常)

javascript - Zombie.js 与 Behat 和 Mink

javascript - PHP - 获取数据时 Ajax 自动刷新页面

javascript - 我实际上如何使用 php 返回的查询填充多个选择框,并将其添加到 jquery 的多维数组中?

php - Behat 3.0 功能文件夹/路径

php - 如何更改 codeception phpbrowser/mink 超时