sorry_i_noob
@sorry_i_noob

Где ошибка в моем XPath селекторе?

Здравствуйте. Есть такой XPath селектор:

//div[contains(@class,"wrapper")]//tr[contains(@class,"table__row") and .//span[contains(@class, "campaign-info-number") and contains(text(),'302177')]]


Я хочу найти tr, который имеет класс "table__row", и у которого есть потомок - span, который имеет класс "campaign-info-number" и содержимое этого span - "302177". tr имеет предка div, который имеет класс "wrapper".
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 2
@grinat
А в каком языке и с какой библиотекой эта проблема? Обычно библиотеки по умолчанию ищут только по простому xpath, а для вычисления таких выражений используются отдельные методы, да и поддержка конструкций не всегда полная, потому что может быть к примеру у либы поддержка xpath 1.0, а ты используешь выражения из xpath 2.0
Ответ написан
Комментировать
@Roman-Fov
XML
<div>
	<div class="asdf wrapper">
		<table>
			<tr class="table__row">
				<td>
					<span class="campaign-info-number">302177</span>
				</td>
			</tr>
			<tr class="table__row">
				<td>
					<span class="campaign-info-number">302178</span>
				</td>
			</tr>
			<tr class="table__row">
				<td>
					asdf
				</td>
			</tr>
		</table>
	</div>
</div>


XPath
//div[contains(@class, 'wrapper')]//tr[contains(@class, 'table__row') and .//span[contains(@class, 'campaign-info-number')]/text() = '302177']


Result
<tr class="table__row">
	<td>
		<span class="campaign-info-number">302177</span>
	</td>
</tr>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы