2012-04-03 89 views
1

如何停止硒服務器,直到彈出窗口打開?Selenium waitforpopup

我們有selenium.waitForPageToLoad停止服務器,直到頁面加載。但是有沒有辦法阻止Popup?

我試過selenium.WaitForPopup,但是我找不到彈出的ID。因爲我用div元素創建了一個彈出框(其ID是popup_container)。

我試着下面的代碼:

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

但是,這並不工作。任何幫助?

+0

爲了澄清,彈出窗口是一個div標籤就像在這個[demo](http://www.pat-burt.com/csspopup.html)中看到的? – 2012-04-03 16:55:56

+0

亞..完全... – 2012-04-04 06:29:42

+0

你有什麼想法嗎? – 2012-04-04 12:37:09

回答

1

您的'彈出'實際上不是一個彈出窗口,它只是一個div標籤。所以你想等到這個元素(div標籤)出現。有一種方法檢查元素是否存在:

selenium.IsElementPresent(div_of_the_popup) 

您可以循環檢查,直到元素存在或某個時間過期。您可以在其他question/answer處看到示例循環。

Selenium的更高版本確實包含了等待元素的方法。最終,問題的關鍵是等待DIV而不是彈出窗口。

UPDATE:根據你的其他帖子,它看起來像你使用Selenium-Webdriver。如果是這樣,那麼你可以使用例如由硒網頁爲explicit waits

+0

謝謝..它的工作正常。 – 2012-04-05 04:28:46

0

C#

你彈出實際上是一個div。你可以這樣做:

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