【问题标题】:ExpectedConditions.InvisibilityOfElementLocated takes more timeExpectedConditions.InvisibilityOfElementLocated 需要更多时间
【发布时间】:2019-01-14 21:30:08
【问题描述】:

我遇到了一种情况,我需要等到元素消失(在 Firefox 中)。所以我尝试了不同的选项,但没有任何效果,所以尝试使用

new WebDriverWait(Drivers._driverInstance, new TimeSpan(0, 0, 2)).Until(ExpectedConditions.InvisibilityOfElementLocated(locator));

这可行,但运行测试用例需要 26 秒。当我评论那句话时,花了一半的时间。为什么这种特殊方法需要更多时间。虽然我只提到了 2 秒,但它正在等待近 10 秒。为什么要这样做?有没有更快的方法等到元素消失。

谢谢。

【问题讨论】:

  • 在此之前代码中是否有隐式等待?
  • @Grasshopper 是的。
  • 删除它并尝试。隐式和显式的混合可能会导致这种行为。
  • @Knu8 成功了。谢谢。
  • @Sudeepthi 隐式等待设置一次并在驱动程序实例的整个生命周期中持续存在。恕我直言,最好不要使用隐式等待,而是在需要时使用显式等待 (WebDriverWait)。除非您的页面非常动态,否则您应该能够通过使用WebDriverWait 来等待页面加载特定元素。加载该元素后,您就知道页面已加载,因此您可以抓取页面上的任何内容。如果您的操作触发了页面更改,请再次等待,然后继续。

标签: c# selenium selenium-webdriver wait


【解决方案1】:

如果在此显式等待之前您的代码中有隐式等待。删除隐式等待并尝试。隐式和显式等待的混合可能会导致这种行为。

检查一下,看看接受的答案——Clarification on the cause of mixing Implicit and Explicit waits of Selenium doc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 2022-01-23
    • 2021-02-22
    • 2020-04-19
    • 2016-09-07
    相关资源
    最近更新 更多