【问题标题】:Quickly assert the non-presence of an element without waiting in Selenium无需在 Selenium 中等待即可快速断言元素的不存在
【发布时间】:2012-11-16 00:15:35
【问题描述】:

Selenium IDE 中的 Java Junit 导出器默认设置 30 秒 implicit wait。这意味着,测试元素的断言不存在将导致不必要的延迟 30 秒。

我曾尝试使用超时时间为 1 的显式等待(WebDriverWait 类),但仍需要大约 30 秒。

那么有没有办法绕过隐式等待各种定位器(即By 类)?

【问题讨论】:

    标签: java selenium selenium-webdriver


    【解决方案1】:

    如果您使用显式等待,则取消设置隐式等待:

    driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
    

    【讨论】:

      【解决方案2】:
      boolean isElementPresent(By by) {
          try {
              driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
              driver.findElement(by);
              driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
              return true;
          }
          catch(Exception e){
              driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
              return false;
          }
      }
      

      恶心但有效。似乎每个隐式等待的命令都应该能够被重载。但 find 元素没有 2 参数版本。也许它在By?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-27
        • 2016-12-25
        • 2019-11-02
        • 2020-02-23
        • 1970-01-01
        • 2016-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多