У меня есть следующий XPath для соответствия атрибутам класса:
//span[@class='amount']
Я хочу сопоставить все элементы, которые имеют атрибут класса «сумма», но также могут иметь и другие классы. Я думал, что смогу сделать это:
//span[@class='*amount*']
но это не работает ... как я могу это сделать?
Используйте следующее выражение:
//span[contains(concat(' ', @class, ' '), ' amount ')]
Вы можете использовать contains
в себе, но это будет также соответствовать классам , как someamount
. Проверьте приведенное выше выражение на следующем входе:
<root>
<span class="test amount blah"/>
<span class="amount test"/>
<span class="test amount"/>
<span class="amount"/>
<span class="someamount"/>
</root>
Он выберет первые четыре элемента span
, но не последний.
Вам нужно использовать метод contains. См. Раздел Как использовать XPath contains () здесь?
//span[contains(@class,'amount')]