Selenium waitforpopup

时间:2012-04-03 09:45:36

标签: selenium popup automated-tests

如何在弹出窗口打开之前停止selenium服务器?

我们有selenium.waitForPageToLoad来停止服务器直到页面加载。但有没有办法阻止Popup?

我用selenium.WaitForPopup尝试过,但我找不到弹出窗口ID。因为我创建了一个带有div元素的弹出框(其id为popup_container)。

我尝试了以下代码:

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

但这不起作用。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

你的'弹出窗口'实际上不是一个弹出窗口,它只是一个div标签。所以你要等到该元素(div标签)存在。有一种方法可以检查元素是否存在:

selenium.IsElementPresent(div_of_the_popup)

您可以循环检查,直到元素存在或某个时间到期。您可以在另一个question/answer看到示例循环。

Selenium的更高版本,包括执行等待元素的方法。最终,问题的关键是等待DIV而不是弹出窗口。

更新:根据您的其他帖子,您似乎正在使用Selenium-Webdriver。如果是这样,那么您可以使用explicit waits

的selenium网页中的示例

答案 1 :(得分:0)

<强> C#

你的弹出窗口实际上是一个div。你可以这样做:

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