2016-12-30 63 views
0

enter image description here确定哪些具有普遍页面组成

假设页面呼叫者我在页面: 我点击“创建书”链接,带我到书页的创造者,当我点击开始预订创建者,它返回我主页

假设我在某个搜索结果页面: 我点击了“创建图书”链接,将我带到Book Creator页面,当我点击开始图书创建者时,它返回我搜索结果页面

您可以在链接中测试此场景

同一代码:

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

将一个类 callee字段添加到CommonItem类中,更改或添加另一个构造函数以获取此被调用字段的值并初始化它。所以你的PageA构造函数将会有新的CommonItem(PageA.class)行。现在CommonItem类知道哪个类创建了它的一个对象。 – Grasshopper

+0

在问题中添加了Update-1。不确定,如何访问结果页面的方法。 –

回答

0

但从您可以尝试执行脚本“window.history.go网络点( -1)“点击任何链接或按钮。

关于java代码,类CommonItem可以有一个构造函数,该构造函数接受谁创建它的参数,稍后可以用它来确定后台页面。