确定具有公共页面作为组合的页面的调用者

时间:2016-12-30 14:51:56

标签: java selenium pageobjects

enter image description here

假设我在页面中: 我点击了“创建书籍”链接,带我到Book Creator页面,当我点击开始书籍创建者时,它返回我主页面

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

您可以在链接Wikipedia page

中测试此方案

代码相同:

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()方法,返回PageA或PageB,语法为

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

1 个答案:

答案 0 :(得分:0)

从网络的角度来看,您可以尝试执行脚本&#34; window.history.go(-1)&#34;点击任何链接或按钮。

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