2013-12-25 8 views
0

Когда я нажимаю кнопку на странице, отображается всплывающее окно. Это не всплывающее окно. Это всплывающее приложение. Всплывающее окно, которое я получаю в своем приложении, похоже на ту, которую я показал на изображении с помощью кнопки X. теперь Как переместить элемент управления драйвера во всплывающее окно, а затем нажмите кнопку закрытия, доступную во всплывающем окне, а затем верните мой элемент управления обратно на исходную страницу.Обрабатывать всплывающее окно в selenium webdriver с помощью C#

Мне нужно сделать это с помощью Selenium WebDriver и C#.

popup sample

+1

Its простой HTML, вам нужно найти этот элемент и нажмите на близком пролете или, что это. –

+0

oh .. Я думал, что это должно быть обработано, как будто это новое окно. anywasy .. проверит и сообщит вам, если это беспокоит – user3083590

ответ

0

Новая поп-сообщение тоже есть имя или идентификатор класса ..
Сначала получить имя класса или идентификатор, который всплывал и идти на XPath (может быть мы найдем имя класса) нажмите кнопку закрытия и нажмите на нее.

3

Вам нужно сделать следующее ...

  • Петля через окна и найти нужное окно
  • Переключение в окнах
  • Найти кнопку в текущем окне и нажмите ту же

Вот пример кода в C#

foreach (string handle in browser.WindowHandles) 
     { 
      IWebDriver popup = driver.SwitchTo().Window(handle); 

      if (popup.Title.Contains("popup title")) 
      { 
       break; 
      } 
     } 

IWebElement closeButton = driver.FindElement(By.Id("closeButton")); 
closeButton.Click(); 
+0

Метод работает с обычным WebDriver, например Chrome, однако он не работает для PhantomJS, потому что WindowHandles выдает исключение. Я использую PhantomJS, потому что хочу запустить свой код из процесса, который не имеет доступа к рабочему столу. – fireydude

0

Пример, который вы указали: не всплывающее окно, а простое окно DHTML. Чтобы получить доступ к X вашего примера, вы можете использовать: driver.findElementBy(By.id("profile-tooltip-closebtn")).click().

0

Вы можете попробовать

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