2016-12-30 2 views
0

enter image description hereDéterminer l'appelant de la page qui a la page commune que la composition

On suppose que je suis à la page: J'ai cliqué sur le lien « Créer livre », me prend à la page Book Creator et quand je clique sur démarrer Livre créateur, il me renvoie Page principale

Je suppose que je suis dans une page de résultats de recherche: J'ai cliqué sur le lien "Créer un livre", j'arrive à la page Book Creator et quand je clique sur Démarrer le créateur du livre, il me renvoie recherche page de résultats

vous pouvez tester ce scénario dans le lien Wikipedia page

même dans le code:

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; 
    } 
} 

Mise à jour-1: J'ai mis en suggestion ci-dessus. Maintenant, j'ai une méthode d'essai qui appelle la méthode pageX.someLink(), retourne PageA ou PageB, la syntaxe serait

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

Ajoutez un champ de classe callee à la classe CommonItem, modifiez ou ajoutez un autre constructeur pour obtenir la valeur de ce champ d'appel et l'initialiser. Ainsi, votre constructeur PageA aura une nouvelle ligne CommonItem (PageA.class). La classe CommonItem sait maintenant quelle classe a créé un objet. – Grasshopper

+0

Ajout de la mise à jour 1 à la question. Pas sûr, comment accéder à la méthode de la page de résultats. –

Répondre

0

Du point de vue web, vous pouvez essayer l'exécution du script « window.history.go (-1) "sur clic de n'importe quel lien ou bouton. En ce qui concerne le code java, la classe CommonItem peut avoir un constructeur qui prend un paramètre quant à qui l'a créé, qui peut ensuite être utilisé pour déterminer la back-page.