Cependant je suis en train de découvrir que je le trouve plus utile pour stocker vos locators que Par les objets plutôt que de WebElements comme ils sont plus souples et vous avez tendance à éviter de courir dans la StaleElementException.
De cette façon, vous pouvez également utiliser votre locators lorsqu'il fait valoir l'absence d'un élément ou de l'utiliser dans le ExpectedConditions aides.
Je vais avoir beaucoup de mal à comprendre pourquoi quelqu'un serait d'utiliser @FindBy au lieu de Par les objets. Puis-je utiliser PageFactory.initElements(pilote, page) méthode lors de la suppression d'annotations? Merci Bonne explication de l'aide plutôt que Par @FindBy. Merci 🙂
Utilisé pour marquer un champ d'un Objet de Page pour indiquer une mécanisme alternatif de la localisation de l'élément ou une liste d'éléments. Utilisé en conjonction avec PageFactory#proxyElement cela permet aux utilisateurs de créer rapidement et facilement des PageObjects.
Donc, si vous utilisez PageObject modèle puis vous ajoute cette annotation pour les membres de la classe et WebDriver injecter automatiquement approprié WebElements lors de l'initialisation de l'objet (lorsque PageFactory.initElements() appelé).
Merci pour votre réponse. Donc, j'ai une autre question...qu'il sera utilisé pour les éléments d'évolution de leur locators dynamiquement? Quoi tu veux dire en disant changing their locators dynamically? Ce que ma compréhension est "@FindBy" Annotation est utilisée lorsque les éléments de l'ID sont en train de changer de façon dynamique dans l'application web....Corrigez-moi si me trompe. @FindBy est utilisé pour accéder à l'élément à la page web avec connu id/nom/etc Si l'identification de l'élément créé automatiquement alors comment WebDriver va le savoir? merci, mis à jour.
Avec l'aide de PageFactory classe, nous utilisons les annotations @FindBy pour trouver WebElements. Nous utilisons initElements méthode pour initialiser les éléments web. @FindBy peut accepter tagName, partialLinkText, nom, linkText, id, css, className, xpath comme des attributs.
La @FindBy annotation localise un ou plusieurs WebElements à l'aide d'un critère unique. Par exemple, pour identifier tous les éléments qui ont le même attribut de classe, nous pourrions utiliser la suite de l'identification:
C'est pour aider à la construction de localisateurs lors de l'utilisation de la Page d'Usine à l'appui de votre Page Objets
PageFactory Page Wiki
Cependant je suis en train de découvrir que je le trouve plus utile pour stocker vos locators que Par les objets plutôt que de WebElements comme ils sont plus souples et vous avez tendance à éviter de courir dans la StaleElementException.
au lieu de
De cette façon, vous pouvez également utiliser votre locators lorsqu'il fait valoir l'absence d'un élément ou de l'utiliser dans le ExpectedConditions aides.
Puis-je utiliser PageFactory.initElements(pilote, page) méthode lors de la suppression d'annotations? Merci
Bonne explication de l'aide plutôt que Par @FindBy. Merci 🙂
OriginalL'auteur el roso
Puis-je citer API-documentation?
Donc, si vous utilisez
PageObject
modèle puis vous ajoute cette annotation pour les membres de la classe etWebDriver
injecter automatiquement appropriéWebElement
s lors de l'initialisation de l'objet (lorsquePageFactory.initElements()
appelé).Je recommande fortement de suivre ce lien et de lire sur
PageObject
et@FindBy
annotations utilisation avec plus d'exemples.Quoi tu veux dire en disant
changing their locators dynamically
?Ce que ma compréhension est "@FindBy" Annotation est utilisée lorsque les éléments de l'ID sont en train de changer de façon dynamique dans l'application web....Corrigez-moi si me trompe.
@FindBy
est utilisé pour accéder à l'élément à la page web avec connu id/nom/etc Si l'identification de l'élément créé automatiquement alors comment WebDriver va le savoir?merci, mis à jour.
OriginalL'auteur Slava Semushin
Vous pouvez également utiliser Pagefactory, et avoir quelque chose comme:
Maintenant, quant à savoir Comment., vous pouvez avoir:
Ou vous pouvez utiliser votre propre DOM de Recherche plus de Xpath, qui serait à l'extérieur de WebDriver de l'API , mais il devrait fonctionner.
OriginalL'auteur kamal
Avec l'aide de PageFactory classe, nous utilisons les annotations
@FindBy
pour trouver WebElements. Nous utilisons initElements méthode pour initialiser les éléments web.@FindBy
peut accepter tagName, partialLinkText, nom, linkText, id, css, className, xpath comme des attributs.La
@FindBy
annotation localise un ou plusieurs WebElements à l'aide d'un critère unique. Par exemple, pour identifier tous les éléments qui ont le même attribut de classe, nous pourrions utiliser la suite de l'identification:OriginalL'auteur The man