2015-11-09 2 views
0

Если я нажму ссылку на родительское окно, откроется дочернее окно и после выбора значения в дочернем окне дочернее окно автоматически закрывается, и элемент управления в закрытом окне. Как вернуть элемент управления в родительское окно.Окно для детей закрывается после выбора значения, неспособное перенести фокус на родительское окно

код:

Set<String> windows3 = w.getWindowHandles(); 
      for(String handles3 : windows3) 
      { 
       w.switchTo().window(handles3); 
       System.out.println(w.getTitle()); 
      } 
      w.switchTo().frame("MainFrame1"); 
      w.findElement(By.name("close_button")).click(); 
      w.switchTo().defaultContent(); 

один раз, если я нажимаю кнопку close, дочернее окно автоматически закрывается. w.close() [w - эталонная переменная для класса водителя - WebDriver w = new FirefoxDriver();]; здесь не работает. Щелчок по кнопке закрытия в дочернем окне является обязательным. Просьба принести решение для этого

Ошибка:

Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to get browser (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 13 milliseconds 
+0

сосредоточиться на родительском окне перед закрытием ребенка, а затем закрыть ребенка. Else позволить родительскому окну закрыть дочерний элемент и сосредоточиться на себе –

+0

как сфокусироваться на родительском окне перед закрытием ребенка ?? Я хочу щелкнуть элемент в дочернем окне, как только я нажму, он будет закрыт автоматически, тогда я не смогу переместить элемент управления в родительский. Если можно написать свой код здесь, это будет полезно для –

ответ

0

Вы должны сохранить дескриптор окна родительского перед переключением в дочернем окне, а затем вернуться к родительскому окну с помощью этой ручки.

String parentWin=w.getWindowHandle(); 

    /* Switch Window Code */ 

w.switchTo().window(parentWin); 

Заявление w.switchTo().defaultContent(); бросает ошибку, потому что вы пытаетесь перейти по умолчанию содержимое закрытого окна.

+0

(String ручки: Windows). \t \t \t { \t \t \t \t w.switchTo() окно (ручки); \t \t \t} \t \t \t System.out.println (w.getTitle()); \t \t \t w.manage(). Timeouts(). ImplicitlyWait (1, TimeUnit.SECONDS); \t \t \t w.switchTo(). DefaultContent(); \t \t \t w.switchTo(). Frame ("menucontent"); \t \t \t w.findElement (By.xpath ("// img [@ id = 'toggleTreeExpand']")). Click(); \t \t \t w.manage(). Timeouts(). ImplicitlyWait (1, TimeUnit.SECONDS); \t \t \t w.switchTo(). Frame (w.findElement (By.name ("menuFr"))); \t \t \t w.findElement (By.xpath ("// a [@ title = 'открыть учетную запись")). Click(); –

+0

Что такое код выше? Мое решение сработало для вас? – Manu

+0

На самом деле есть 2 дочерних окна, если я выбираю значение во втором дочернем окне, он автоматически закрывается, а дочернее окно 1 утра не может привести элемент управления. –

Смежные вопросы