With the help of this SO question I have an almost working xpath:
//div[contains(@class, 'measure-tab') and contains(., 'someText')]
However this gets two divs
: in one it's the child td
that has someText, the other it's child span
.
How do I narrow it down to the one with the span
?
<div class="measure-tab">
<!-- table html omitted -->
<td> someText</td>
</div>
<div class="measure-tab"> <-- I want to select this div (and use contains @class)
<div>
<span> someText</span> <-- that contains a deeply nested span with this text
</div>
</div>
To find a div
of a certain class that contains a span
at any depth containing certain text, try:
//div[contains(@class, 'measure-tab') and contains(.//span, 'someText')]
That said, this solution looks extremely fragile. If the table happens to contain a span
with the text you're looking for, the div
containing the table will be matched, too. I'd suggest to find a more robust way of filtering the elements. For example by using IDs or top-level document structure.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments