Я искал и искал ответ на этот вопрос. Я тестирую в 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
приложение, которое я тестирую, создается одно всплывающее окно, затем всплывающее окно закрывается, затем появляется другое всплывающее окно, которое закрывается, и, наконец, появляется фактическое приложение, которое нужно проверить, и оно либо является текущим фокусом на монитора или за начальной страницей, которая начала все это.
Итак, как я могу добраться до окна приложения, на котором мне нужно протестировать? Я попытался переключиться на различные всплывающие окна, которые, кажется, попытаются перевести его в окно приложения, но это не сработало. Заранее спасибо
Спасибо за ответ, я еще не успел полностью его протестировать. Моя проблема заключается в том, что всплывающее событие создает два окна. Окно загрузки и окно, которое мне нужно проверить. Класс PopupWindowFinder работает, но он переключается в окно загрузки. Попытка выяснить, как это сделать, если это окно и окно тестирования. – IModulo5