如何在弹出窗口打开之前停止selenium服务器?
我们有selenium.waitForPageToLoad
来停止服务器直到页面加载。但有没有办法阻止Popup?
我用selenium.WaitForPopup
尝试过,但我找不到弹出窗口ID。因为我创建了一个带有div元素的弹出框(其id为popup_container)。
我尝试了以下代码:
selenium.WaitForPopUp("id=popup_container", "30000");
但这不起作用。有什么帮助吗?
答案 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")));