Comment tester si une balise img?
si je ne expect(img).not.toBe(null)
puis j'obtiens une erreur:
Error: expect called with WebElement argment, expected a Promise. Did you mean to use .getText()?
. Je ne veux pas mettre le texte à l'intérieur d'une img, je veux juste savoir si le tag existe sur la page.
describe('company homepage', function() {
it('should have a captcha', function() {
var driver = browser.driver;
driver.get('http://dev.company.com/');
var img =driver.findElement(by.id('recaptcha_image'));
expect(img.getText()).not.toBe(null);
});
});
Passe, mais je ne suis pas sûr que c'est de tester la chose. Modification de l'id de quelque chose qui n'existe pas ne échouer.
Comment puis-je tester correctement pour une balise d'exister avec le rapporteur, dans un non-angulaire app contexte?
OriginalL'auteur Maslow | 2014-01-21
Vous devez vous connecter pour publier un commentaire.
Edit 2:
Par Codage Smackdown ci-dessous, encore plus courte réponse est maintenant disponible en rapporteur:
expect(element(by.id('recaptcha_image')).isPresent()).toBe(true);
Edit 1:
J'ai découvert isElementPresent() aujourd'hui, ce qui est juste plus lisible raccourci pour ce que j'ai décrit ci-dessous. Voir: http://www.protractortest.org/#/api
D'utilisation pour vous serait:
Vieille réponse (cela fonctionne, mais le dessus est bien plus clair)
En général, vous devez utiliser findElements (ou $$ qui est un alias pour findElements par css), si vous n'êtes pas sûr d'une balise sera là. Pour vérifier la longueur du tableau. FindElement (et de $) juste lever une erreur si il ne trouve pas l'élément.
Donc au lieu de
utilisation:
Aussi, getText() renvoie une promesse qui est pourquoi vous obtenez cette erreur.
OriginalL'auteur wlingke
À l'aide de la dernière Rapporteur construire, vous pouvez raccourcir le suivant:
OriginalL'auteur Coding Smackdown