2011-12-15 4 views
0

Я пытаюсь написать тест для селена для продвижения заказа через сайт. Сайт совместим только с IE, и он отключает правую кнопку мыши. Когда я нажимаю кнопку «Продолжить» в определенной точке, я получаю всплывающее окно javascript. В этом окне мне нужно выбрать «Да», но я не могу просмотреть источник, чтобы получить «id» кнопки «Да».Selenium popup нет источника

Может ли кто-нибудь помочь мне с тем, как я мог идентифицировать идентификаторы кнопок или отображать источник?

Инструменты разработчика недоступны после появления этого окна.

+0

Когда вы говорите «js-window», вы подразумеваете новое окно или что-то вроде виджета в браузере? – SkyFox

ответ

1

Если это Java-уведомление, то вам нужно сделать что-то вроде этого:

driver.SwitchTo().Alert().Accept(); 

где водитель экземпляра WebDriver вы используете.

---- EDIT ----

JavascriptExecutor js = (JavascriptExecutor) driver; 
if(js.executeScript("document.readyState")== "complete") 
{ 
    thread.sleep(500); 
    driver.SwitchTo().Alert().Accept(); 
} 
+0

Я получаю следующее 'org.openqa.selenium.NoAlertPresentException: предупреждение не активно. Может ли это быть проблемой при появлении предупреждения при загрузке страницы или до загрузки страницы? – BON

+0

@BON звучит так, как будто ваш код запускается до всплывания. Я предполагаю, что всплывающее окно javascript запускается на document.ready, но ваш селен срабатывает при загрузке страницы, поэтому вы ищете предупреждение перед запуском сценария предупреждения. См. Мое редактирование для разрешения – CBRRacer

0

Есть 3 типа яваскрипта всплывающих окон:

  1. Бдительные - он имеет только кнопку "да"
  2. Подтверждение - это есть «да», а также кнопки «нет»
  3. Подсказка - у нее есть область ввода для ввода чего-либо и кнопки «да» и «нет»

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

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