Dans un test de rapporteur final, je veux vérifier si un élément existe en utilisant element (by.css (...)), mon code:
var myElement = element(by.css('.elementClass'));
expect(myElement).toBeUndefined;
Ce test échoue, il dit:
Expected { locator_ : { using : 'css selector', value : 'div[ng-switch-
when="resultNav"]' }, parentElementFinder_ : null, opt_actionResult_ :
undefined, opt_index_ : undefined, click : Function, sendKeys : Function,
getTagName : Function, getCssValue : Function, getAttribute : Function, getText
: Function, getSize : Function, getLocation : Function, isEnabled : Function,
isSelected : Function, submit : Function, clear : Function, isDisplayed :
Function, getOuterHtml : Function, getInnerHtml : Function, toWireValue :
Function } to be undefined.
Après cela, j'ai essayé d'utiliser une promesse:
element(by.css('.elementClass')).then( functtion(data) {
expect(data.getText()).toBeUndefined();
});
Cela entraîne une erreur:
Erreur: aucun élément trouvé à l'aide du localisateur By.CssSelector (...)
Oui, je sais qu'aucun élément ne sera trouvé, mais comment puis-je créer un test de travail en utilisant element (by.css(...)
)?
Est-ce que quelqu'un sait comment y parvenir? ou element(by.css())
n'est-il pas la méthode à utiliser ici?
Vous pouvez tester la présence de element
avec isPresent
. Voici la documentation du rapporteur pour la fonction isPresent
.
Donc, votre code serait quelque chose comme:
var myElement = element(by.css('.elementClass'));
expect(myElement.isPresent()).toBeFalsy();
Vous devez tester si l'élément n'est pas présent:
expect(element(by.css('.elementClass')).isPresent()).toBe(false);