1
votes

cyprès: sélecteur css pour sélectionner une ancre par texte

Je commence à jouer avec cyprès et je dois sélectionner un lien comme celui-ci:

cy.contains('a[href~=Agregar]')
cy.contains('a[href*="Agregar"]')
cy.contains('a:contains("^Agregar$") ')
cy.contains('a:contains("^Alta$") ')

Suite à cette page , j'ai déjà essayé avec ceux-ci:

<table cellSpacing="0" cellPadding="0" width="100%" border="0" class="ToolBarBkg">
  <tbody>
    <tr>
      <td class="ContentLeftLinks" align="right" width="98%" height="40" nowrap>
        &nbsp;
        <a href="javascript:FireEvent('Agregar')" style="COLOR: black; font-weight: normal" tabindex="-1">
          <IMG src="/metassc/images/toolbar/AltaOn.gif" align="absmiddle" border=0> Alta
        </a>
        &nbsp;

        <a href="javascript:FireEvent('Eliminar')" style="COLOR: black; font-weight: normal" tabindex="-1">

          <IMG src="/metassc/images/toolbar/BajaOn.gif" align="absmiddle" border=0> Baja
        </a>

Mais aucun d'entre eux ne semble fonctionner. Une idée?


0 commentaires

4 Réponses :


0
votes

Cela semble fonctionner, j'ai dû utiliser cy.get au lieu de contient

cy.get('a[href*="Agregar"]')
  .click()


0 commentaires

3
votes

cy.contains () peut également prendre deux arguments:

cy.contains('a', 'Alta')

Ceci obtient le premier élément a contenant le texte Alta


0 commentaires

0
votes

Une autre façon est que vous pourriez probablement explorer jusqu'à la balise via la méthode parent () et find () dans cypress;

cy.get('a:contains("Agregar")').parents('.ToolBarBkg').find('tbody').find('tr').find('td').find('a').contains("Agregar").click();


0 commentaires

1
votes

Il existe cette bibliothèque populaire> cypress-testing-library

Cela facilite grandement l'obtention des sélecteurs par texte, titre, valeur, texte alternatif etc.

Pour votre problème, vous pouvez simplement utiliser la méthode getByText de cette bibliothèque: cy.getByText('Agregar').click()


0 commentaires