#xpath #contains
#xpath #содержит
Вопрос:
У меня есть этот XPath:
//tr[contains(td, 'Europe')]
который работал, когда у меня было это:
<tr>
<td></td>
<td>Europe</td>
<td></td>
</tr>
но теперь у меня есть это:
<tr>
<td></td>
<td><a>Europe</a></td>
<td></td>
</tr>
Как я могу получить доступ к XPath сейчас (исходя из того факта, что Европа находится там).
Я пытался:
//tr[contains(a, "Europe")]
и
//tr[contains(text(), "Europe")]
и многие другие глупости без какого-либо успеха.
Ответ №1:
//tr[contains(td, 'Europe')]
Это должно работать с обеими схемами, потому что fn:contains()
приводит оба аргумента к строкам.
Я вижу проблему с другой схемой, где может быть более одного td
элемента. В этом случае вам следует использовать:
//tr[td[contains(.,'Europe')]]
Комментарии:
1. Да, там есть еще tds, я исправлю вопрос, спасибо за ответ.
2. Вы можете захотеть .//tr[td[содержит(.,’Europe’)]] если есть какой-либо шанс, что это также может совпадать вне контекстного узла.