2014-02-26 5 views
2

Я новичок в NUNIT и не понимаю, как закрыть диалоговое окно.Закрытие всплывающего окна в Google Translate

Сайт, на котором я экспериментирую, - это Google Translate. Часть кода «нажимает» на ссылку «Отправить ссылку обратной связи».

Ниже функция Я использую:

public void CloseModalWindow(string className) 
{ 
    WebController wPage = new WebController(driver); 
    wPage.waitUntilExistsByXPath(className); 
    wPage.waitUntilVisibleByXPath(className); 
    IWebElement clickButtonXPATH = driver.FindElement(By.XPath(className)); 
    clickButtonXPATH.Click(); 
} 

Основная логика в том, что я пытаюсь моделировать это нажать на «Х» на верхней правой части Feedback всплывающего окна Google, которое появляется.

Пожалуйста, обратите внимание, что:

  • Веб-драйвер FireFox.
  • Я отправляю значение XPath (полученное из Google Translate напрямую с помощью FireBug) /html/body/div[3]/div/span[2].
  • Я также попытался использовать метод CSSSelector вместо XPATH, посылая значение span[class='modal-dialog-title'] в функцию.

Nunit будет в полном объеме без каких-либо ошибок, но всплывающее окно не закрывается, как я ожидаю.

Заранее благодарю вас за ввод и понимание.

+0

Я не знаю, если я право получить вас. Но если вы хотите имитировать окно окна, которое можно легко закрыть, проверьте FancyBox от JQuerry. Легко и выглядит аккуратно. Вы можете реализовать это на своей HTML-странице с помощью простого сценария. – koffe14

+0

Кристоффер, спасибо за ваш ответ. Я фактически пытаюсь закрыть диалоговое окно программно во время сеанса NUNIT. – Dennis

ответ

0

С вашего XPath я вижу, что «X» не является изначально интерактивным элемент - как <a> или <button> есть. Я испытал, что вызов Click() на такие элементы не соответствует ожидаемому. Вместо этого вы можете попробовать использовать функциональность action builder, которая будет имитировать общий ввод мыши или клавиатуры. Заменить

clickButtonXPATH.Click(); 

с

new Actions(driver).Click(clickButtonXPATH).Build().Perform(); 
+0

Дио, спасибо за ответ и заставив меня узнать о классе строителя действий в Селене. Я рассмотрю класс более подробно. Я попробовал несколько вариантов и до сих пор не могу закрыть всплывающее окно. Я пробовал свой код выше (слегка модифицированный путем создания экземпляров Actions в объект, называемый builder), а также пытаюсь использовать builder.MoveToElement. (ClickButtonXPATH) .click(). Build(). Perform() ;. Есть ли у вас другие предложения? Еще раз спасибо. – Dennis

+0

К сожалению, нет. Это все на данный момент. –

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