Filter a List of Elements Using stringEquals
To test the <example-poll> component, we want to assert that there's one correct answer button, and that its text is UI Test Automation Model.
When you can't use a selector to get the elements you need, use an element filter.
For example, a selector can't access text nodes. To select elements based on text, filter a list of elements declaratively, without writing code.
An element with a filter must have a selector with returnAll set to true so that the generated method returns an array. (If a method returns a single element, you don't need a filter.)
In the filter, specify a method to apply to the element. Basic elements can apply basic actions. This example applies getText.
Then specify a matcher, which is applied to all the selected elements. Elements that match are returned by the generated method.
A matcher can filter based on its type. This tutorial uses a stringEquals matcher, which matches a string exactly, including whitespace and case equality. For the list of all matcher types, see Grammar: Matchers.
To select the correct button, test code simply calls the generated method and passes the string to check. The returned array contains only elements that match.
getButtonsByText('UI Test Automation Model');
Click Run Test.