Внутренняя XML библиотека для Robot Framework вроде бы выполняет все что надо. Но вот есть одна загогулина. Библиотека поддерживает ограниченный список xpath.
tag
*
.
//
..
[@attrib]
[@attrib='value']
[tag]
[position]
А как же остальное? contains, оси и все другое.
Необходимо немного переделать библиотеку, чтобы она использовала http://lxml.de/ c полной поддержкой XPath 1.0. Код писал лично для себя и очень быстро, так что не притендую на оригинальность и правильность решения. Но вдруг кому нужно будет, то можете переиспользовать и доработать до нужного состояния.
Вся суть заключается в том, чтобы переопределить импортируемый класс
А тесты остаются точно такими же как и для XML библиотеки
Добавил также пару методов для работы, если xpath возвращает несколько элементов в xml: set_elements_text, set_elements_attribute, get_elements_texts, и т.д.
В общем, если кому-то надо, пользуйтесь, форкайте и добавляйте, исправляйте, чего вам не хватает.