0 votes

Cypress obtenir les frères d'entrée et changer la valeur ?

Je suis nouveau dans cypress et je veux obtenir le champ d'entrée pour modifier la valeur.

Je peux sélectionner la ligne puis les éléments frères mais je n'arrive pas à sélectionner le . Sur l'image ci-dessous, nous pouvons voir les `frères` sélectionnant les éléments de la ligne, maintenant je veux sélectionner celui de l'entrée mais je n'y arrive pas: [![](https://i.stack.imgur.com/FpDI2.png)](https://i.stack.imgur.com/FpDI2.png)

``this.onPred1Change(k, e.target.value)} />

  it('modifier la prédiction', () => {
    cy.get('table').contains('td', 'jour son facebook')
     .siblings()
     .contains('input[name=labelPred1]  ','0')
     .type('2')
  })

Dans le code ci-dessus, vous pouvez voir la structure HTML de mon entrée puis mon test Cypress où j'ai également essayé de remplacer le contains(...) par .get('input') ``

1voto

Sarah Points 530

Les frères et sœurs prennent un sélecteur, vous pourriez donc déplacer le sélecteur d'entrée dedans,

cy.get('table')
  .contains('td', 'jour son facebook')
  .siblings('td input[name=labelPred1]')  // spécifier td + enfant input
  .type('2')

ou peut-être le td suivant

cy.get('table')
  .contains('td', 'jour son facebook')
  .next()
  .find('input[name=labelPred1]')   // dans le prochain td
  .type('2')

Ce .contains('input[name=labelPred1]','0') ne fonctionne pas car l'élément est un input et le '0' n'est pas sur la propriété text, mais sur la propriété de valeur.

.contains() trouve uniquement le texte entre les balises

Ceci fonctionne probablement

cy.get('table')
  .contains('td', 'jour son facebook')
  .siblings()
  .find('input[name="labelPred1"][value="0"]')
  .type('2')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X