Selenium waitforpopup - PullRequest
       25

Selenium waitforpopup

1 голос
/ 03 апреля 2012

Как остановить сервер селена, пока не откроется всплывающее окно?

У нас есть selenium.waitForPageToLoad, чтобы остановить сервер до загрузки страницы. Но есть ли способ остановить это для Popup?

Я пробовал с selenium.WaitForPopup, но не могу найти идентификатор всплывающего окна. Потому что я создал всплывающее окно с элементом div (идентификатор которого popup_container).

И я попробовал следующий код:

selenium.WaitForPopUp("id=popup_container", "30000");

Но это не работает. Любая помощь?

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

Ваше «всплывающее окно» на самом деле не всплывающее окно, это просто тег div.Итак, вы хотите подождать, пока этот элемент (тег div) не появится.Существует метод проверки наличия элемента:

selenium.IsElementPresent(div_of_the_popup)

Вы можете проверять цикл, пока элемент не присутствует или не истечет определенное время.Вы можете увидеть примеры циклов в этом другом вопрос / ответ .

В более поздних версиях Selenium есть методы для выполнения элемента ожидания для элемента.В конечном счете, ключом к вашей проблеме является ожидание DIV, а не всплывающее окно.

ОБНОВЛЕНИЕ : Судя по другим вашим постам, похоже, что вы используете Selenium-Webdriver.Если это так, то вы можете использовать пример с веб-страницы селена для явных ожиданий

0 голосов
/ 23 ноября 2016

C #

Ваше всплывающее окно на самом деле div. Вы можете сделать это так:

Wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.Id("Popup_Div_Id")));
...