XPath – cоединить два невложенных элемента

Есть код:

<div>
<label>Message:</label>
<span><textarea name="ContactUsForm_Comment"></textarea></span>
</div>

Я хочу записать assertElementPresent содержимого всего div одним движением.

Если проверяю только //label[contains(text(),’Message:’)] – то все ок.

Если проверяю только //textarea[@name=’ContactUsForm_Comment’] – тоже все ок.

Вопрос: как соединить проверку этих элементов в одно?

Проблема в том, что элементы label и textarea не вложены, а  находятся на одном уровне.

Решение: после первого элемента указываем “поднимись на один уровень и обратись ко второму элементу по порядку расположения“:

//div/label[contains(text(),’Message:’)]/../span/textarea[@name=’ContactUsForm_Comment’]

3 thoughts on “XPath – cоединить два невложенных элемента

  1. Альтернатива этому,

    //div[label[contains(text(),’Message:’)]]/span/textarea[@name=’ContactUsForm_Comment’]

Leave a comment