2013-01-22 41 views
0

我有登錄頁面,當點擊登錄按鈕時,它打開新的選項卡。處理動態變化的元素ID - 使用硒webdriver

我使用,移動控制新窗口

driver.switchTo().window("_blank"); 

當我點擊一個Button它會打開新的彈出窗口(即彈出是不是一個正常的窗口是一個IFRAME)。

我選擇了使用彈出窗口,

driver.switchTo().frame("frameName"); 

即彈出有記錄列表;每個記錄都有單獨的「選擇」選項(帶有動態更改的ID)。

driver.findElement(By.xpath("//a[@id='radgrdPeople_ctl00_ctl04_lnkSelect']")).click(); 

從列表中選擇記錄時,彈出窗口將被關閉,頁面將被刷新。

現在我想返回到我的父窗口做一些其他的東西控制。

該記錄成功選擇。但我無法再重點關注父窗口。

我曾嘗試:

driver.switchTo().defaultcontent(); 
driver.switchTo().window("_blank"); 

而且

driver.getWindowHandles() 

我還是m如果同樣的問題。

我不知道我是否必須使用任何Java腳本執行器來處理動態變化的元素ID。

你能幫我嗎?

在此先感謝。

通過 K.Ranjithkumar

回答

0

在後點擊你使用WindowName切換到新窗口中的登錄按鈕後。但是,在嘗試的解決方案中,您使用empty string切換到新窗口。

0

你應該第一個窗口作爲父窗口現在

String parent=driver.getwindowhandle; 
// then, set String popup to be equal to window handle of the 
// popup window 
driver.switchTo().window(popup); 
driver.findElement(By.id("okbutton")).click(); //assumes close of popup 

在彈出的窗口中執行任務後,返回控制父窗口:

driver.switchTo().window(parent);// switch back to parent window 
driver.switchTo().defaultcontent(); // reset iframe context