Выполнение запроса xpath может вернуть нам узел, атрибут узла, результат функции и т. Д. Выполнение xpath в Mink должно вернуть элемент узла в find()
, findAll()
а также has()
методы NodeElement
учебный класс.
Существуют ситуации, когда у нас есть выбранный элемент узла, и мы хотим утверждать, что у него есть класс или что некоторое выражение 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 ")]');
Других решений пока нет …