首页 文章

在页面加载之前将使用哪个等待

提问于
浏览
-2

在没有任何时间框架的页面加载之前将使用哪个等待,即应该无限期地等待页面加载(selenium,java)

  • driver.manage() . timeouts() . implicitlyWait( 10 ,TimeUnit.SECONDS);

  • WebDriverWait wait = new WebDriverWait(driver, 10 );

以上语法都有时间范围,但webdriver应无限等待,直到页面加载为止 .

请举例说明

2 回答

  • 0

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

    Implicit Wait

    隐式等待将告诉Web驱动程序在它抛出“No Such Element Exception”之前等待一定的时间 . 在您的示例中,您已声明了一个隐含的等待,时间范围为10秒 . 这意味着如果元素在该时间范围内不位于网页上,则会引发异常 .

    WebDriverWait wait = new WebDriverWait(driver,10);

    Explicit Wait 显式等待用于告知Web驱动程序在抛出"ElementNotVisibleException"异常之前等待某些条件(预期条件)或超过最大时间 .

    Your Solution :

    Fluent Wait

    流畅的等待用于告诉Web驱动程序等待条件,以及在抛出“ElementNotVisibleException”异常之前我们想要检查条件的频率 .

    如果我们声明显式等待20秒,则元素可能会在10秒,20秒甚至更长时间内加载 . 在抛出异常之前它会等到指定的时间 . 在这种情况下,流畅的等待是理想的等待使用,因为这将尝试以不同的频率找到元素,直到它找到它或最终的计时器用完为止 .

    Example :

    等待等待=新的FluentWait(驱动程序).withTimeout(30000,TimeUnit.SECONDS).pollingEvery(5,TimeUnit.SECONDS).ignoring(NoSuchElementException.class);

  • 0

    要确保完全加载页面,您需要检查文档状态是否处于完整状态,这些都不等待页面加载 document.readyState

相关问题