2015-03-02 2 views
1

Я искал и искал ответ на этот вопрос. Я тестирую в IE8, используя Selenium Webdriver и C#. В определенный момент теста я должен нажать кнопку, которая откроет новое окно приложения с формами, которые необходимо заполнить для продолжения теста.Невозможно переключиться в новое окно с помощью Selenium Webdriver с помощью switchTo()

Я попытался:

driver.switchTo().Window(driver.WindowHandles[0]); 
driver.switchTo().Window(driver.WindowHandles[1]); //this one usually returns and error 
driver.switchTo().Window(driver.WindowHandles.Last()); 

Я также попытался

foreach(String handle in driver.WindowHandles) 
{ 
    driver.switchTo().Window(handle); 
    //do things here 
} 

Каждый из них не удается, и когда я пишу имя ручки на консоли выходы не все же имя окна, независимо от того, что Я пытаюсь это сделать. Кто-нибудь есть идея, как я могу получить новое окно?

Добавление к вопросу:

Спасибо @Saifur для нового направления с использованием PopupWindowFinder.

Это то, что я пытался с ним до сих пор

string currentWindow = driver.CurrentWindowHandle; 
PopupWindowFinder finder = new PopupWindowFinder(driver); 
string popWindow = finder.Click(driver.FindElementById("Element")); 
driver.SwitchTo().Window(popWindow); 

Так это должно щелкнуть на элементе, который начнется всплывающее событие, а затем переключатель должен поместить его в всплывающем окне, так что я могу продолжить тест. Вот проблема сейчас. Когда Element нажал на finder приложение, которое я тестирую, создается одно всплывающее окно, затем всплывающее окно закрывается, затем появляется другое всплывающее окно, которое закрывается, и, наконец, появляется фактическое приложение, которое нужно проверить, и оно либо является текущим фокусом на монитора или за начальной страницей, которая начала все это.

Итак, как я могу добраться до окна приложения, на котором мне нужно протестировать? Я попытался переключиться на различные всплывающие окна, которые, кажется, попытаются перевести его в окно приложения, но это не сработало. Заранее спасибо

ответ

0

Используйте PopupWindowFinder класс, так как вы используете C#. И, см. Мой ответ на аналогичный вопрос here

+0

Спасибо за ответ, я еще не успел полностью его протестировать. Моя проблема заключается в том, что всплывающее событие создает два окна. Окно загрузки и окно, которое мне нужно проверить. Класс PopupWindowFinder работает, но он переключается в окно загрузки. Попытка выяснить, как это сделать, если это окно и окно тестирования. – IModulo5

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