0
假設頁面呼叫者我在頁面: 我點擊「創建書」鏈接,帶我到書頁的創造者,當我點擊開始預訂創建者,它返回我主頁
假設我在某個搜索結果頁面: 我點擊了「創建圖書」鏈接,將我帶到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 ?
將一個類> callee字段添加到CommonItem類中,更改或添加另一個構造函數以獲取此被調用字段的值並初始化它。所以你的PageA構造函數將會有新的CommonItem(PageA.class)行。現在CommonItem類知道哪個類創建了它的一個對象。 – Grasshopper
在問題中添加了Update-1。不確定,如何訪問結果頁面的方法。 –