【问题标题】:Selenium waitforpopup硒等待弹出
【发布时间】:2012-04-03 09:45:35
【问题描述】:

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

我们有selenium.waitForPageToLoad 来停止服务器,直到页面加载。但是有什么方法可以阻止 Popup 的出现吗?

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

我尝试了以下代码:

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

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

【问题讨论】:

  • 澄清一下,弹出窗口是一个 div 标签,就像在demo?中看到的那样?

标签: selenium popup automated-tests


【解决方案1】:

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

selenium.IsElementPresent(div_of_the_popup)

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

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

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

【讨论】:

    【解决方案2】:

    C#

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

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

    【讨论】:

      猜你喜欢
      • 2019-02-19
      • 2011-12-08
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2018-12-15
      • 1970-01-01
      相关资源
      最近更新 更多