Je viens de commencer à explorer Cypress et j'ai rencontré un tel problème: est-il possible de sélectionner un attribut concret et de changer sa valeur comme dans Selenium à l'aide de JavascriptExecutor
? Par exemple, prenons ce simple morceau de code
input id="mapsearch" type="textbox" class="form-control" name="address" test=""
Est-il possible d'obtenir l'attribut de test et d'attribuer ma propre valeur?
Oui. Tout ce que vous pouvez faire en JavaScript est possible dans les tests Cypress. Pour le code HTML ci-dessus, vous pouvez le faire dans Cypress en utilisant .invoke()
:
cy.get('input[test]')
.invoke('attr', 'test', 'my new value')
.should('have.attr', 'test', 'my new value')
Cypress utilise jQuery sous le capot, vous pouvez donc invoquer n'importe quelle fonction dans jQuery comme celle-ci. Vous pouvez également utiliser du JavaScript simple après avoir généré l'entrée en utilisant .then()
:
cy.get('input[test]').then(function($input){
$input[0].setAttribute('test', 'my new value')
})
.should('have.attr', 'test', 'my new value')