Répondre 1:

Jagan Maruthappan a déjà très bien répondu à cette question. Cependant, je voudrais ajouter un point clé que j'ai remarqué lors de mes travaux sur Selenium.

Dans Page Factory, si l'élément n'est pas trouvé à un endroit particulier, l'élément WebElement dans lequel vous stockez l'élément ne contient pas null, il contient un élément proxy ou quelque chose. Cela signifie que pour les projets d'entreprise, où nous exécutons généralement des milliers de cas de test, il est très difficile de suivre l'erreur.

Un autre inconvénient est que la Page Factory utilise Annotation. Vous pourriez penser que c'est un inconvénient. Je m'explique, Annotation fournit des fonctionnalités spécifiques pour la facilité des programmeurs, mais elle est également de nature statique, nous ne pouvons pas la modifier. Un langage de programmation comme JAVA nous permet de faire ce que nous voulons, et nous pouvons le faire de plusieurs façons comme nous le souhaitons. POM n'est rien d'autre que l'implémentation du référentiel d'objets qui se comporte exactement comme nous insérons driver.findElement (By .- (“- - -“)); directement dans nos scripts de test.



Répondre 2:

Modèle d'objet de page: modèle de conception: code de sélénium séparé basé sur les pages.

Ex: Créez une classe java séparée pour la page de connexion, une classe de plus pour la page d'accueil, etc.

Page Factory: Concept avancé (POM + nouvelles fonctionnalités)

1. Les éléments sont identifiés à l'aide de @FindBy Annotation

2. Initialisation de tous les éléments déclarés au point # 1 à la fois.

(dans POM, l'initialisation se fait à la volée)

PageFactory.initElements (pilote, ceci);

C'est tout.



Répondre 3:

Modèle d'objet de page: modèle de conception: code de sélénium séparé basé sur les pages.

Ex: Créez une classe java séparée pour la page de connexion, une classe de plus pour la page d'accueil, etc.

Page Factory: Concept avancé (POM + nouvelles fonctionnalités)

1. Les éléments sont identifiés à l'aide de @FindBy Annotation

2. Initialisation de tous les éléments déclarés au point # 1 à la fois.

(dans POM, l'initialisation se fait à la volée)

PageFactory.initElements (pilote, ceci);

C'est tout.