DOM
,
à interagir avec eux et à obtenir des informations sur l'état actuel de votre application.
Cette documentation explique comment localiser et exécuter des actions sur des éléments DOM
à l'aide de Protractor.Protractor
exporte une fonction globale element
, qui prend un localisateur et retournera un ElementFinder
.
Cette fonction trouve un seul élément. Si vous devez manipuler plusieurs éléments, utilisez la fonction element.all
.ElementFinder
dispose d' un ensemble de méthodes d'action, tels que click()
, getText()
et sendKeys
.
Celles-ci constituent le principal moyen d'interagir avec un élément et de récupérer des informations à partir de celui-ci.Protractor
, toutes les actions sont asynchrones.
En coulisse, toutes les actions sont envoyées au navigateur contrôlé à l'aide du protocole JSON Webdriver Wire
.
Le navigateur exécute ensuite l'action comme le ferait un utilisateur de manière native.Protractor
comment trouver un élément DOM
particulier.
Le rapporteur exporte des usines de localisation sur l'objet global by
. Les localisateurs les plus courants sont :element
, comme ci-dessous :CSS
comme localisateur, vous pouvez utiliser la notation de raccourci $()
:element()
retourne un objet ElementFinder
.
ElementFinder
sait comment localiser l'élément DOM
en utilisant le localisateur que vous avez transmis en tant que paramètre, mais il ne l'a pas encore fait.
Il ne contactera pas le navigateur tant qu'une méthode d'action n'a pas été appelée.WebDriverJS
sur un WebElement
est disponible sur un ElementFinder
.DOM
, utilisez la fonction element.all
.
Cela prend également un localisateur comme seul paramètre.element.all()
a plusieurs fonctions d'assistance :CSS
en tant que localisateur, vous pouvez utiliser la notation de raccourci $$ ()
:element.all
comme ci-dessous.get
/ first
/ last
comme ceci :WebDriver
et WebElements
, ou si vous êtes simplement curieux des WebElements
mentionnés ci-dessus,
vous vous demandez peut-être comment ils se rapportent à ElementFinders
.driver.findElement(locator)
, WebDriver
envoie immédiatement une commande au navigateur lui demandant de localiser l'élément.
Ce n'est pas idéal pour créer des objets de page, car nous voulons pouvoir faire des choses dans la configuration (avant le chargement d'une page) comme ... myButton
tout au long de votre test.
ElementFinders
contourne cela en stockant simplement les informations de localisation jusqu'à l'appel d'une action.ElementFinders
permet également le chaînage pour trouver des sous-éléments, tels que element(locator1).element(locator2)
.WebElement
sont encapsulées de cette manière et disponibles sur ElementFinder
, en plus de plusieurs méthodes d'assistance telles que isPresent
.WebElement
sous-jacent en utilisant element(locator).getWebElement()
, mais vous n'auriez pas besoin de le faire.