When I fill in the following: by its attribute

Fills multiple form fields from a data table, located by attribute.

Without an explicit attribute, each key is matched against id / class /
name / data-testid / data-test-id / data-test / data-cy / aria-label /
value / placeholder / title.

Step pattern

When (I |we )*fill in( the)* following: by( its)*(?: "([^"]*)?")* (attribute|attr)

Examples

Example #1
When I fill in the following: by attr
| #uname     | John Smith        |
| password   | s3cret            |
Example #2
When I fill in the following: by its "placeholder" attribute
| Your full name | John Smith    |
| Your Password  | s3cret        |
Example #3
When I fill in the following: by attribute
| [data-testid=email]    | a@b.c   |
| [data-testid=username] | alice   |
Example #4
When we fill in the following: by attr
| first-name | Alice  |
| last-name  | Smith  |
Example #5
When I fill in the following: by its "name" attribute
| card_number | 4242 4242 4242 4242 |
| exp_date    | 12/30               |