检查现有节点元素实例是否满足xpath条件

时间:2014-09-16 11:10:22

标签: php xpath bdd behat mink

执行xpath查询可以返回一个节点,一个节点属性,一个函数结果等。在Mink中执行xpath必须返回find()findAll()has()中的节点元素NodeElement类的方法。

在某些情况下,我们有一个选定的节点元素,并且我们想要断言它有一个类或者该元素上的某个xpath表达式满足条件。

这样做的最恰当和最优雅的方式是什么?

1 个答案:

答案 0 :(得分:1)

在xpath中,我们可以使用self轴引用元素本身。我们的想法是选择具有所需条件的self,如果其满足的Mink将获得相同的元素(不是函数或表达式结果,或属性,或其他任何东西),因此不会抛出异常。

$element = $this->getSession()->getPage()->find('//div');
$element->has('/self::*[position() = 1]');
$element->has('/self::*[contains(concat(" ", normalize-space(@class), " "), " my-class ")]');