执行xpath查询可以返回节点、节点属性、函数结果等。在Mink中执行xpath必须返回NodeElement
类的find()
、findAll()
和has()
方法中的节点元素。
有些情况下,我们有一个选定的节点元素,并且我们想要断言它有一个类,或者该元素上的某个xpath表达式满足条件。
做这件事最恰当、最优雅的方式是什么?
在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 ")]');