Skip to content

findByRole with name option does not consider element title when element contains text. #274

Description

@linuspahl
  • cypress-testing-library version: 10.0.1
  • node version: 21.1.0
  • yarn version: 1.22.19

Problem description:

I want to test the following button

<button title="button title">
  button text
</button>

In our unit tests (@testing-library/react 14.2.1) we can find the button with
screen.findByRole('button', { name: /button title/i })

The same query does not work in our e2e tests (@testing-library/cypress):
cy.findByRole('button', { name: /button title/i })

Usually I would not define a title for the button and use the following query:
cy.findByRole('button', { name: /button text/i })

But in my case the button contains just an icon (ligature), which is just a string in the DOM and it would be more appropriate to use the button title for the query, instead of this string.

As a workaround I am using cy.findByTitle(/button title/i).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions