【问题标题】:Ignoring Exception忽略异常
【发布时间】:2020-05-15 15:38:39
【问题描述】:

当我尝试理解下面的代码时,我们将使用 WebDriverWait 来等待网页中的元素,以避免 NoSuchElementException,但是为什么我们在下面的代码中使用 ignoring(NoSuchElementException.class)?

WebDriverWait wait=new WebDriverWait(dr,20);
wait.ignoring(NoSuchElementException.class);

在这里忽略我们已经等待的目的是什么?何时使用忽略(异常)? 如果我的理解有误,请纠正我。

【问题讨论】:

    标签: java selenium selenium-webdriver


    【解决方案1】:

    当在给定时间后元素没有出现时它会忽略,并且您的测试不会中断,但是如果没有找到元素,那么忽略可能不合适 ,一切都取决于您需要做什么,如果该元素的可见性是可选的,那么忽略是可以的,但是如果您的测试强制可见性,请不要使用忽略

    【讨论】:

      【解决方案2】:

      通常当我们在页面中等待一个元素时,我们不使用忽略。相反,我们使用“直到”。这为代码添加了一个条件。在满足此条件或您给出的时间到期之前,它不会抛出任何异常(或错误)。

      例如: JavaScript:

      driver.wait(webdriver.until.elementLocated(webdriver.By.xpath('/html/body/header/div')),20000)
      

      Java:

      new WebDriverWait(driver,20).until(ExpectedConditions.presenceOfElementLocated(By.xpath("/html/body/header/div")))
      

      这两个代码在 Javascript 和 Java 中做同样的事情。这里我们告诉 selenium 驱动程序等待 20 秒,如果页面中的元素未找到(我们的条件)然后抛出错误,如果在给定时间之前的任何时间找到元素(条件满足),它就不会等待并继续下一个代码。我希望它有所帮助。

      【讨论】:

        猜你喜欢
        • 2011-03-13
        • 1970-01-01
        • 2022-06-16
        • 2012-05-23
        • 2019-11-17
        • 2018-10-14
        • 2011-04-16
        • 1970-01-01
        相关资源
        最近更新 更多