2015-03-17 4 views
0

Я работаю с селеном, теперь есть условие:Ручка окна Всплывающие в Selenium

, когда я нажал на кнопку в моем веб-странице окно всплывающее открывает.

Теперь я должен нажать переключатель (один из двух, он будет работать, даже если мы отправим TAB), а затем нажмите кнопку «ОК». Я искал в сети и узнал о «driver.getWindowHandle()».

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

+0

Переключить на этой оконной ручке с помощью 'driver.switchTo() окна («обработать»);' где 'handle' вы попадаете на 'driver.getWindowHandle();'. Пройдите туда после. После того, как вы нажмете «ok», тогда 'driver.switchTo.defaultContent();' –

+0

Я получил это, но просто хочу знать, как будет выглядеть код, который будет щелкнуть по ОК в окне. Я новичок в JAVA, поэтому я смущен этим! – Reema

ответ

0

Проверьте свой ответ на этот пост, а также прочитать комментарии, чтобы помочь вам понять разницу между getWindowHandle() и getWindowHandles()

Java: focus is not on pop-window during window handling

+0

@Nitin - Вы не можете получить дескриптор всплывающего окна, просто используя 'driver.getWindowHandle()'. – Dharam

0

Мы перекачиваемой эту ситуацию, используя AutoItX - https://www.autoitscript.com/site/ в нашей Windows/IE C# проекта:

AutoItX3 autoIt = new AutoItX3(); 
var handle = autoIt.WinWaitActive("[window title]", "", 20); 
Assert.IsTrue(handle != 0", string.Format("Was not able to find: {0}", [window title]); 
autoIt.Send("{ESCAPE}"); // tab may work as well for selection 

всплывающее было окно для Windows, а не часть IE, поэтому WebDriver не знал об этом. Надеюсь, это поможет.

1

Для переключения цели и можно использовать расширение для цикла:

for (String winHandle : objDriver.getWindowHandles()) { 
    objDriver.switchTo().window(winHandle); 
} 

Так будет переключать управление от одного окна драйвера для дочерних окон.

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

Чтобы вернуться к родительскому окну, вы можете использовать один и тот же цикл, или использовать:.

driver.switchTo().defaultContent(); 
Смежные вопросы