web-dev-qa-db-fra.com

(Rapporteur) Vérifier si une entrée est désactivée au clic?

J'ai deux champs de saisie, nom d'utilisateur et mot de passe et un bouton de rotation. Lorsque je clique sur ce bouton de rotation, ces deux champs de saisie sont désactivés et je suis redirigé vers une autre page. J'écris un test de bout en bout pour vérifier si ces champs de saisie sont désactivés.

element(by.model('username')).sendKeys('rabi');                   
element(by.model('password')).sendKeys('rabi');                   

/* click on spin button */
spinBtn = element(by.className('call-to-action'));                               
spinBtn.click(); 

/* check if input is disabled */
var loginInput = element(by.id('login-username'));                               
expect(loginInput.isEnabled()).toBe(false);
20
rabishah

L'exemple précédent de

expect(loginInput.getAttribute('disabled')).toEqual('disabled');

Ne fonctionnera pas pour vérifier si quelque chose est activé.

Tu devrais utiliser

expect(loginInput.isEnabled()).toBe([true|false]);

pour vérifier avec précision si quelque chose est activé/désactivé.

Si cela ne fonctionne pas pour vous, il se passe probablement autre chose.

58
Taylor Rose

Vous pouvez utiliser la méthode d'attribut get:

expect(loginInput.getAttribute('disabled')).toEqual('disabled');
1
Bastien Caudan

Je veux ajouter que la réponse de @ TaylorRose (la réponse la plus votée) est très bonne et le remercie pour cela.

// passes when the button does not have 'disabled' attribute
expect($('#saveChangesBtn').isEnabled()).toBe(true);

Cependant, lorsque j'ai essayé de lancer ceci, j'ai eu une erreur:

 Error: TSError: ⨯ Unable to compile TypeScript e2e/specs/element.e2e-spec.ts: 
  Argument of type 'false' is not assignable to parameter of type 'Expected<Promise<boolean>>'.

Il existe de nombreuses solutions à ce problème et en voici deux:

1.Faites vos attentes pour taper 'any' 

expect<any>($('#saveChangesBtn').isEnabled()).toBe(true);

2.Ajouter @ types/jasminewd2 à votre paquet json (et lancez 'npm install' bien sûr) (grâce à aktraore @ github )

 "devDependencies": {
    ...,
    "@types/jasminewd2": "2.0.6",
    ...
   }

Et puis plus d'erreurs de TypeScript et cela résout ce problème. P.s. La version 2.0.6 est la dernière en date de la rédaction de cet article et la version magique pourrait être différente pour votre cas.

C'est donc un ajout à la réponse la plus votée si quelqu'un ici a ce problème.

0
Combine