【问题标题】:Selenium with WebDriver - waitSelenium 与 WebDriver - 等待
【发布时间】:2014-04-04 07:21:19
【问题描述】:

我有一个 Java 中的 Selenium 测试套件,使用 WebDriver。 我有一个通用的等待函数,它接受一个 CSS 选择器,并使用 WebDriverWait 等待元素出现并可见,然后再继续断言。但是,现在,我希望在继续之前等待某种类型的所有元素,这些元素在 DOM 中不再可见。确切的例子是我有许多图像正在加载,我想等待它们的加载微调器消失后再继续。还没有找到可以为我解决这个问题的东西,所以在这里发布。 有什么线索吗?

谢谢!

public void waitForPageToLoad(WebDriver webDriver, String cssToWaitFor) {
    WebDriverWait wait = new WebDriverWait(webDriver, 20);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(cssToWaitFor)));
}

【问题讨论】:

  • 能否请您发布您当前的通用“等待”方法,以便我们进行调整。
  • 当然!原始帖子已编辑。
  • @Arran:你的名声怎么了?有人被删除了?
  • @user1177636 不幸的是 :( 并没有真正从模组中得到谁或为什么,但最终是的,有人被删除,他们的声誉也随之而来。想象一下当我登录并发现时我的惊讶出去!

标签: java selenium selenium-webdriver webdriver


【解决方案1】:

检查invisibilityOfElementLocated 预期条件。 Reference。来自文档:

invisibilityOfElementLocated

public static ExpectedCondition<java.lang.Boolean> invisibilityOfElementLocated(By locator)

An expectation for checking that an element is either invisible or not present on the DOM.

Parameters:
    locator - used to find the element

所以你可以像这样使用它:

public void waitForInvisibility(WebDriver webDriver, String cssToWaitFor) {
    WebDriverWait wait = new WebDriverWait(webDriver, 20);
    wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(cssToWaitFor)));
}

或者,您可以查看public static ExpectedCondition&lt;java.lang.Boolean&gt; not(ExpectedCondition&lt;?&gt; condition),文档会这样做:

具有给定逻辑相反条件的期望 条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    相关资源
    最近更新 更多