2012-04-03 4 views
1

Wie stoppt man den Selenserver, bis sich ein Popup öffnet?Selenium waitforpopup

Wir haben selenium.waitForPageToLoad, um den Server zu stoppen, bis die Seite lädt. Aber gibt es eine Möglichkeit, es für Popup zu stoppen?

Ich versuchte es mit selenium.WaitForPopup, aber ich kann Popup-ID nicht finden. Weil ich ein Popup-Feld mit div-Element erstellt habe (dessen ID popup_container ist).

Und ich versuchte, den folgenden Code:

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

Aber das funktioniert nicht. Irgendeine Hilfe?

+0

Um zu verdeutlichen, ist das Popup ein div-Tag wie in diesem [Demo] (http://www.pat-burt.com/csspopup.html) gesehen? –

+0

ya .. genau ... –

+0

Haben Sie eine Idee ?? –

Antwort

1

Ihr "Popup" ist eigentlich kein Popup, es ist nur ein div-Tag. Sie möchten also warten, bis dieses Element (div-Tag) vorhanden ist. Es ist eine Methode, um zu überprüfen, ob das Element vorhanden ist:

selenium.IsElementPresent(div_of_the_popup) 

Sie Schleife überprüft, bis das Element vorhanden ist oder eine bestimmte Zeit abgelaufen ist. Sie können Beispielschleifen bei diesem anderen question/answer sehen.

Die späteren Versionen von Selen enthalten Methoden zum Warten auf Elemente. Letztendlich wartet der Schlüssel zu Ihrem Problem auf das DIV kein Popup.

UPDATE: Basierend auf Ihren anderen Posts sieht es so aus, als ob Sie Selenium-Webdriver verwenden. Wenn ja, dann können Sie das Beispiel von der Seite Selen Web verwenden für explicit waits

+0

Vielen Dank .. Es funktioniert gut. –

0

C#

Ihr Pop-up ist eigentlich ein div. Sie können es so tun:

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