Consideriamo un esempio da WebDriver in cui creo due classi diverse per gestire l'oggetto pagina, uno memorizza il localizzatore di elementi e altre operazioni reali che riguardano la pagina -
public class ContactPageElements {
private By nameTextBox = By.id("name");
public static By getNameLocator() {
return nameTextBox;
}
}
public class ContactPage {
public ContactPage enterName(String name) {
findElement(ContactPageElements.getNameLocator()).sendKeys(name);
return this;
}
}
Ora, se dovessi sostituire WebDriver con un nuovo framework di test snazy, interromperò la classe ContactPage poiché dipende dall'oggetto By
che viene restituito dalla classe ContactPageElements.
Quindi mi sembra che la classe ContactPageElements
non debba avere un metodo pubblico che restituisce Per oggetto. Ma allora quale opzione mi è rimasta?
Sono titubante nel mantenere gli elementi locator nella percentuale diContactPage
in quanto potrei finire per violare il principio di responsabilità singola.