1

私はインターネットで少し検索しましたが、stackoverflow に投稿してそこに意見があるかどうかを確認するだけで、何らかの洞察が得られるかもしれないと考えました。

ページオブジェクトを設定するこれら2つの方法のどちらが好ましいかについて、誰かが意見を持っているかどうか疑問に思っています:

public class LoginPage extends PageObject{
   public void typeEmail(String email){
       driver.findElement(EMAIL_SELECTOR).sendKeys(email);
   }

   public void typePassword(String pw){
       driver.findElement(PASSWORD_SELECTOR).sendKeys(email);
   }

   public void submit(){
       driver.findElement(SUBMIT_SELECTOR).click();
   }
}

...と...

public class LoginPage extends PageObjects{
    public void login(String email, String password){
       driver.findElement(EMAIL_SELECTOR).sendKeys(email);
       driver.findElement(PASSWORD_SELECTOR).sendKeys(email);
       driver.findElement(SUBMIT_SELECTOR).click();
   }
}

もともと、ログインフローが何らかの理由で変更された場合 (これはログインでは起こりそうにありませんが、他のタイプのフォームでこれが起こることを理論化できます)、login() メソッドとこれを更新できるため、2 番目の方法の方がよいと考えていました。変更すると、ログインが必要なすべてのテストに影響します。

ただし、submit() の前にエラー状態やその他のことを確認したい場合、2 番目の解決策は十分に柔軟ではありません。

どんな洞察も大歓迎です。

4

2 に答える 2

1

ページ オブジェクト の定義 : 「PageObject はページ全体を表す必要はありません。サイト ナビゲーションなど、サイトまたはページ内で何度も表示されるセクションを表す場合があります。」

PageObject の重要なポイント:

- The public methods represent the services that the page offers
- Try not to expose the internals of the page
- Generally don't make assertions
- Methods return other PageObjects
- Need not represent an entire page
- Different results for the same action are modelled as different methods

ソース

あなたの 2 つの設定は PageObject ではありませんが、いくつかの類似点があります。

于 2013-06-20T12:27:27.807 に答える