我有一个基于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