如何设置 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日

5K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告