如何在 Selenium 驱动程序中获取整个页面的 innerHTML?

seleniumautomation testingtesting tools

我们可以在 Selenium 中获取整个页面的 innerHTML。我们将使用方法  getPageSource 并在控制台中打印其捕获的值。

语法

String s = driver.getPageSource();

我们也可以通过 Selenium 中的 Javascript 命令获取 HTML 源代码。我们将使用  executeScript 方法,并将命令 return document.body.innerHTML 作为参数传递给该方法。

语法

JavascriptExecutor j = (JavascriptExecutor) driver;
String s = (String) j.executeScript("return document.body.innerHTML;");

示例

使用 getPageSource 的代码实现。

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;
public class PageHTMLcode{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      String url = "https://www.tutorialspoint.com/index.htm";
      driver.get(url);
      // getPageSource方法获取页面的HTML
      System.out.println("Get HTML of page: "+ driver.getPageSource());
      driver.quit();
   }
}

使用 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 PageHTMLcodeJS{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      String url = "https://www.tutorialspoint.com/index.htm";
      driver.get(url);
      // Javascript执行器获取页面HTML
      JavascriptExecutor j = (JavascriptExecutor) driver;
      String s = (String) j.executeScript("return document.body.innerHTML;");
      System.out.println("Get HTML of page: "+ s);
      driver.quit();
   }
}

相关文章