如何在 Selenium WebDriver 中设置页面加载的真实超时时间?


我们可以在 Selenium webdriver 中设置页面加载的真实超时时间。有多种方法可以实现超时。它们列在下面 -

  • setScriptTimeout。

  • pageLoadTimeout。

  • implicitlyWait。

**setScriptTimeout** 方法用于为 webdriver 设置时间。这通常用于异步测试,在抛出异常之前完成。超时的默认值为 0。

此方法通常用于 Selenium 中的 **JavaScript** 命令。如果我们省略了为脚本设置时间,则 **executeAsyncScript** 方法可能会由于 JavaScript 完成执行花费更多时间而导致失败。

如果超时时间设置为负数,则 JavaScript 可以无限期执行。

语法

driver.manage().timeouts().setScriptTimeout(5,TimeUnit.SECONDS);

**pageLoadTimeout** 方法用于设置整个页面加载时间,在抛出异常之前。如果超时时间设置为负数,则加载页面所需的时间是无限的。

此超时通常与 **navigate** 和 **manage** 方法一起使用。

语法

driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);

示例

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class PageLoadWt{
   public static void main(String[] args)
   throws InterruptedException{
      System.setProperty("webdriver.chrome.driver",
      "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //set time for page load
      driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);
      driver.get("https://tutorialspoint.com/about/about_careers.htm");
      driver.quit();
   }
}

**implicitlyWait** 是应用于 webdriver 的方法,用于等待页面中元素可用。它是对每个元素的全局等待。如果在等待时间过后元素仍然不可用,则会抛出 **NoSuchElementException**。

语法

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

示例

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class ImplicitWt{
   public static void main(String[] args)
   throws InterruptedException{
      System.setProperty("webdriver.chrome.driver",
      "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //set implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      driver.get("https://tutorialspoint.com/about/about_careers.htm");
      driver.quit();
   }
}

更新于: 2021年2月1日

4K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告