Я хочу получить текст сообщения об ошибке из тега <span>
или, если он не существует, из родительского тега div
.Для этого мне нужно правильное выражение xpath, которое может обрабатывать оба случая как одно, если это возможно.
Вот HTML-код.Это либо версия 1:
<div class='error-message'>
some error message
</div>
, либо версия 2:
<div class='error-message'>
<span>
some other error message
</span>
</div>
Так что xpaths будут:
v1: //div[@class='error-message']
v2: //div[@class='error-message']/span
Теперь мне нужно каким-то образом объединить (с некоторым выражением 'или'?) v1 и v2.
Если пытались:
//div[@class='error-message']/descendant-or-self::*
но он находит оба элемента, когда диапазон существует (предпочел бы диапазон!) //div[@class='error-message']/descendant-or-self::span
, но ничего не находит, когда диапазон не существует
Я также пытался,что было дано в этом ответе: XPath выберите дочерний элемент, если дочерний существует, иначе выберите родительский , но использование кода .../(span, .[not(span)])
кажется недопустимым, по крайней мере в Ranorex.