Quelle est la différence entre le isPresent et isDisplayed méthodes
J'ai juste commencé à l'aide de Rapporteur pour écrire des tests. Je me demande quelle est la différence entre le isPresent()
et isDisplayed()
méthodes.
L'API définitions
Donc... dans quel cas sont-ils différents?
Vous devez vous connecter pour publier un commentaire.
isPresent est vrai si l'élément existe dans une page (dans les DOM), mais peut être caché (display: none en css)
isDisplayed est vrai que si isPresent est vrai et élément est visible
isDisplayed
décide de savoir si l'élément est visible ou pas, mais déclenche une exception si elle n'est pas dans les DOM.isPresent
résout à savoir si c'est là, dans les DOM ou pas, peu importe si elle est visible ou non. Il ne jette pas une exception.Le code suivant peut être utilisé pour éviter l'exception que isDisplayed jette si l'élément n'est pas trouvé dans les DOM :
Même un objet à la fois la visibilité et la présence peut être transmis lors de la résolution, par exemple :
Toutefois, cela ne fonctionne pas bien avec s'attendre à des déclarations.
Si vous obtenez une erreur lors de l'appel de
isDisplayed()
parce que l'élément n'est pas sur la page, j'.e vous obtenezNoSuchElementError: No element found using locator
, puis le faire:Enroulez simplement
.isDisplayed()
dans votre propre méthode et la poignée de launresolved/rejected promise
comme ci-dessous:Espère que cela aide quelqu'un là-bas !
.then()
, vous pourriez tout simplement le retourisDisplayed
, pas besoin de le si/d'autre..then(function (isDisplayedd) { return isDisplayedd; })
partie parce qu'il doit transmettre le résultat automatiquement à l'autre, alors la fonctionIsPresent(): Retourne TRUE si l'élément existe dans les DOM sinon retourne false
IsDisplayed():
Il existe une différence majeure entre isDisplayed() et isPresent().
isDisplayed() - Votre élément est présent sur la page, mais il est affiché.
isPresent() - Votre élément est présent dans la totalité du DOM de la page. Probablement, il peut être caché ou non handicapés, mais présent.
Vous ne devez pas utiliser isPresent() lorsque vous avez besoin pour valider les élément spécifique que vous recherchez, vous pouvez l'utiliser pour valider certains autres contrôles basés sur l'élément de présence.