Відповідь 1:

Джаган Марутхаппан вже дуже гарно відповів на це питання. Однак я хотів би додати ключовий момент, який я помітив під час роботи над Selenium.

У Page Factory, якщо елемент не знайдено в певному місці, то WebElement, в якому ви зберігаєте елемент, не містить null, він містить проксі-елемент або щось подібне. Це означає, що для проектів компаній, де ми зазвичай запускаємо тисячі тестових випадків, дуже важко відстежити помилку.

Ще одним недоліком є ​​те, що Page Factory використовує анотацію. Ви можете подумати, що це - недолік. Поясню, Анотація забезпечує специфічну функціональність для простоти програмістів, але вона також є статичною за своєю суттю, ми не можемо її змінити. Мова програмування, як JAVA, дозволяє нам робити те, що ми хочемо, і ми можемо робити це різними способами, як нам подобається. POM - це не що інше, як реалізація Object Repository, яка веде себе точно так, як ми вставляємо driver.findElement (By .- ("- - -")); заява прямо в наших тестових сценаріях.



Відповідь 2:

Модель об’єкта сторінки: модель дизайну: окремий код селену на основі сторінок.

Наприклад: Створіть окремий клас java для сторінки входу, ще один клас для домашньої сторінки тощо.

Page Factory: вдосконалена концепція (POM + нові функції)

1. Елементи ідентифікуються за допомогою @FindBy Annotation

2. Ініціалізація всіх елементів, задекларованих у пункті № 1, одночасно.

(у POM ініціалізація відбувається на ходу)

PageFactory.initElements (драйвер, це);

Це все.



Відповідь 3:

Модель об’єкта сторінки: модель дизайну: окремий код селену на основі сторінок.

Наприклад: Створіть окремий клас java для сторінки входу, ще один клас для домашньої сторінки тощо.

Page Factory: вдосконалена концепція (POM + нові функції)

1. Елементи ідентифікуються за допомогою @FindBy Annotation

2. Ініціалізація всіх елементів, задекларованих у пункті № 1, одночасно.

(у POM ініціалізація відбувається на ходу)

PageFactory.initElements (драйвер, це);

Це все.