Проблема в том, что p[preceding-sibling::br]
означает, что в абзаце есть брат-сестра с разрывом строки, в то время как br
на самом деле является потомком p
, а не братом
Так что вы можете обновить свой XPath как
//div[@class="sys_key-facts"]/p[strong[contains(text(), "Part-time")] and br]/text()[last()]
или попробуйте ниже XPath, чтобы получить требуемый вывод:
//div[@class="sys_key-facts"]//strong[.="Part-time"]/following-sibling::text()