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