我有一個基於Web的應用程序,它爲在特定的新窗口中執行的每個操作啓動子窗口。例如:父窗口(parentButton) - > Child1窗口(child1Button) - > Child2窗口(child2Button)Selenium webdriver Java處理多於2個子窗口
我點擊父窗口中的Pbutton將啓動子窗口-1。我在Child窗口中單擊Cbutton1將啓動Child Window-2。我點擊Child window-2中的Cbutton2,它將啓動Child Window-3。因此,我認爲我已經啓動瀏覽器應用程序,我必須切換到Child Window-1,執行cbutton-1,切換到Child窗口-2,執行cbutton-2操作,切換到子窗口 - 3並在此窗口的文本區域中發送一些文本。
這裏的是我在Java代碼中,
/* driver launches and logs in to the Parent window */
String winHandleConsole = driver.getWindowHandle();
log.info("Title of Console window: " +driver.getTitle());
driver.findElement(Constants.lnkIncidentManagement).click();
Set<String> strHandles = driver.getWindowHandles();
log.info("Size of window handle: "+strHandles.size());
for(String handle: strHandles){
driver.switchTo().window(handle);
String strTitle = driver.getTitle();
if(strTitle.equalsIgnoreCase("Incident Management Console(Search)")){
driver.manage().timeouts().implicitlyWait(TimeOutInSec, TimeUnit.SECONDS);
driver.findElement(Constants.lnkNewIncident).click();
Set<String> strHandle_2 = driver.getWindowHandles();
log.info("NEW WINDOW HANDLES: "+ strHandle_2.size());
for(String handle_2: strHandle_2){
log.info("-------:" + driver.getTitle());
if(driver2.getTitle().equalsIgnoreCase("Incident (New)")){
log.info("Title of Incident-New: "+ driver2.getTitle());
driver.switchTo().window(handle_2);
driver.manage().timeouts().implicitlyWait(TimeOutInSec, TimeUnit.SECONDS);
driver.findElement(Constants.txtNewIncidentSummary).sendKeys("This is a text");
}
}
}`
我看到一個新的窗口標題爲「事件(新的)」,當我打印strHandle_2的大小,我看到3 prited。但是,當我打印handle_2變量時,我看不到標題打印。
我應該怎麼做從父母切換到孩子1和從孩子1切換到孩子2?
您可以發佈您正在處理的html嗎? – LittlePanda 2015-04-02 03:01:32
@LittlePanda,這個問題不需要html。我的原始帖子的最後一行清楚地提到了我的確切問題。而且,html太大而無法附加。 – ASANT 2015-04-02 05:09:43
我發現了一個類似的問題 - http://stackoverflow.com/questions/18379410/how-to-handle-the-child-window-in-the-selenium-web-driver-testng-by-using-frame – LittlePanda 2015-04-02 05:22:38