feat(text selector): match text in child nodes #5293
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This changes
text=
and:text()
selectors to match the element when:This allows the following markup to match "Some bold and italics text":
<div>Some <b>bold</b> and <i>italics</i> text</div>
.For the reference, "combined text content" is almost equal to
element.textContent
,but with some changes like using value of
<input type=button>
or ignoring<head>
.This also includes some caching optimizations, meaningful in complex matches
that involve multiple calls to the text engine.
Performance changes (measured on large page with ~25000 elements):
:has-text()
- 14% faster.text=
- 50% faster.:text()
- 0-35% slower.:text-matches()
- 28% slower.