構図

2016-12-30 4 views
0

enter image description here構図

は、私がページにいると仮定して、共通のページを持っているページの発信者を決定します 私はリンク「ブックの作成」をクリックし、私はスタートブックをクリックすると、ブック作成者のページに私を取り、作成者、それは私を返すメインページ

私はいくつかの検索結果ページにあると仮定します: 私は「ブック作成」リンクをクリックしてブッククリエイターページに移動し、ブッククリエイターの開始をクリックすると、結果ページ

このシナリオはリンクでテストできますコード内の同じ

public class CommonItem { 
    Class<?> Calle 
    CommonItem(Class<?> Calle) { 
     this.calle = calle; 
    } 

    public PageX clickLink() { 
     return new PageX(Class<?> Calle); 
    } 

} 



public class PageA { 
    // WebDriver driver; 
    CommonItem ci; 

    PageA() { 
     ci = new CommonItem(PageA.class); 
    } 

    public PageX commonItemClick() { 
     PageX axp = ci.clickLink(); 
     return axp; 
    } 
} 


public class PageB { 
    CommonItem ci; 

    PageB() { 
     ci = new CommonItem(PageB.class); 
    } 

    public PageX commonItemClick() { 
     PageX bxp = ci.clickLink(); 
     return bxp; 
    } 
} 


    public class PageX { 
     Class<?> calle; 
     PageX(Class<?> calle){ 
      this.calle = calle; 
     } 
    public void someLink() { 
     // Click some Link here 
     // return pageA or PageB (depends on which page called this method, How to determine?)     
     return calle; 
    } 
} 

アップデート-1:私は上記の提案を実装しました。 は、今私はpageX.someLink()メソッドを呼び出すテストメソッド は、ページAまたはページBを返しましたが、構文は、ビューのウェブ観点から

PageX xp = pageA.commonItemClick(); 
Class<?> caller = xp.someLink(); 
// how to access method of page A via caller variable ? 
+0

クラス呼び出し元フィールドをCommonItemクラスに追加し、別のコンストラクタを変更または追加してこの呼び出し先フィールドの値を取得し、初期化します。そのため、PageAのクラスは新しいCommonItem(PageA.class)行を持ちます。現在CommonItemクラスは、どのクラスがそのオブジェクトを作成したかを知っています。 – Grasshopper

+0

質問にUpdate-1を追加しました。わからない、結果ページメソッドにアクセスする方法。 –

答えて

0

になります(スクリプト」window.history.goを実行してみてください-1) "をクリックしてください。

クラスCommonItemには、誰が作成したかについてパラメータを取るコンストラクタを使用できます。このコンストラクタは後でバックページを決定するために使用できます。

関連する問題