2017-03-20 3 views
0

webelementPrivateと宣言するのはなぜですか?FindByの後にPageobjectsを作成するときにSelenium WebdriverPrivateの代わりにPublicと宣言すればどうなるでしょうか? 誰でもこの質問に答えることができます。あなたの例ではSelenium Webdriverで@FindByの後にwebelementをPrivateとして宣言する理由

@FindBy(id = "uniqName_34_0") 
private WebElement username; 
+2

なぜゲッターとセッターを使うのですか?(http://stackoverflow.com/questions/1568091/why-use-getters-and-setters) – Guy

+1

あなたは 'public'と' private 'キーワード?あなたが何を求めているのか正確にはわかりません。どうか明らかにしてください。 – JeffC

答えて

0

HomePage以外の任意のクラスは、それがusernameWebElementだを直接操作することができるはずですか?

特に、Page Object Patternを使用している場合は、publicアクセサメソッドを使用しないでください。

テストスクリプトはWebElementsと直接対話してはならず、代わりにPageObjectsと対話し、そのページの機能の実行方法を知っている必要があります。

public HomePage enterUsername(string user) 
{ 
    username.sendKeys(user); 
    return this; 
} 

テスト・スクリプトがページと対話する方法を気にしないその方法、それはユーザ名を入力する必要についての唯一の心配です。だからあなたのHomePageは、次のようになります方法があるかもしれません。テストスクリプトでWebElementsを使用しないようにするには、パブリックフィールドまたはアクセサメソッドを通じて公開しないでください。

PageObjectアーキテクチャに継承がある場合は、必要に応じてprotectedとマークすることをお勧めしますが、WebElementは自分が属しているページに対してプライベートにする必要があります。

関連する問題