Junior — Middle
Vysvětlete rozdíly mezi přístupy Page Factory a Page Object Model v automatizovaném testování
sobes.tech AI
Odpověď od AI
Page Object Model (POM) — je návrhový vzor v automatizaci testování, který předpokládá vytváření tříd objektů pro každou stránku aplikace. V těchto třídách jsou popsány prvky stránky a metody pro jejich interakci. To zlepšuje čitelnost a údržbu testů.
Page Factory — je rozšíření POM, například poskytované v Selenium, které zjednodušuje inicializaci prvků stránky pomocí anotací (@FindBy). Page Factory automaticky inicializuje webové prvky při vytváření objektu stránky, což snižuje opakující se kód.
Hlavní rozdíly:
- POM — koncept, vzor, který lze realizovat různými způsoby.
- Page Factory — konkrétní implementace POM s použitím anotací a líné inicializace prvků.
Příklad s Page Factory v Java:
public class LoginPage {
@FindBy(id = "username")
private WebElement usernameInput;
@FindBy(id = "password")
private WebElement passwordInput;
@FindBy(id = "loginBtn")
private WebElement loginButton;
public LoginPage(WebDriver driver) {
PageFactory.initElements(driver, this);
}
public void login(String user, String pass) {
usernameInput.sendKeys(user);
passwordInput.sendKeys(pass);
loginButton.click();
}
}