Sto lavorando su un progetto Selenium + java in cui tutti gli elementi web di una classe sono dichiarati come -
public class CheckoutPaymentConfirmpage extends WebPage{
public final Button btnPrintorder = new Button("//input[@id='but_Print']");
public final TextField txtpassword = new TextField("password", "//input[@id='pass']");
// Some more elements here
// Some page object methods here
}
Ora, quando mai test ha bisogno di accedere a questi elementi, vengono invocati direttamente sull'oggetto della classe CheckoutPaymentConfirmpage
Ciò che mai piccolo java (o OOPS) conosco, mi ha insegnato che i membri dovrebbero essere il più nascosti possibile. Quindi avrei avuto btnPrintorder
e txtpassword
dichiarati privati e li avrei acceduti usando getter o avremmo creato metodi in classe oggetto di pagina per essere usati dai test.
Ma quando trasmetto questo ad altri non vedono molto valore in esso come stato di istanza variabile (cioè btnPrintorder
ecc) non sarebbe cambiato da un oggetto all'altro per la classe oggetto di pagina (cioè CheckoutPaymentConfirmpage
ecc )
Quindi, in questa situazione, è ok lasciare la variabile di istanza come pubblica?