Вы можете попробовать использовать подстановочный знак *.
удалено
РЕДАКТИРОВАТЬ: С помощью функции string () вы получите только первый абзац.
Просто удалите string () из выражения XPath, чтобы получить все абзацы (при условии, что они находятся в одном узле) и сохраните результат в переменной.
//h2[contains(text(), '{card}')]/following-sibling::p/text()
Альтернатива: если вы знаете максимум Возможный номер абзаца можно использовать concat ().
concat(//h2[contains(text(), '{card}')]/following-sibling::p[1],'|',//h2[contains(text(), '{card}')]/following-sibling::p[2])