需要Selenium等待文档准备好


在Selenium中,我们可以通过使用pageLoadTimeout方法等待文档就绪(页面完全加载)。等待时间将作为此方法的一个参数。

webdriver等待该持续时间以完成页面加载。如果在页面加载完后这段时间过去,将抛出TimeoutException。

语法

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

示例

带有pageLoadTimeout的代码实现

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class PageLdTime{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
         "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //page load wait
      driver.manage().timeouts().pageLoadTimeout(3, TimeUnit.SECONDS);
      //URL launch
      driver.get("https://tutorialspoint.com/index.htm");
      driver.close();
   }
}

我们还可以通过使用JavaScript执行者等待文档准备好(页面完全加载)。等待会持续到JavaScript命令document.readyState返回“complete”。

语法

JavascriptExecutor j = (JavascriptExecutor)driver;
j.executeScript("return document.readyState").toString().equals("complete");

带有JavaScript执行者的代码实现

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class PageldJs{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
         "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL launch
      driver.get("https://tutorialspoint.com/index.htm");
      try{
         // Javascript Executor for ready state
         JavascriptExecutor j = (JavascriptExecutor)driver;
         if (j.executeScript("return document.readyState").toString().equals("complete")){
            System.out.println("Page in ready state"); }
         } catch(Exception exe) {
            System.out.println("Page not in ready state");
         }
         driver.close();
      }
   }
}

输出

更新于: 06-04-2021

5K+ 浏览量

开启你的 职业

通过完成课程获得认证

马上开始
广告