Java Selenium:如何在不首先加载页面的情况下获取网页的HTML?

使用Selenium WebDriver for Java,是否可以在给定URL的情况下获取网页的HTML?

我知道,一旦在浏览器中加载了网页,就可以使用WebDriver.getPageSource()获得HTML。但是,为了提高效率,是否可以在不先将页面加载到浏览器中的情况下获取HTML?

回答:

您可以使用无头浏览器来实现。

无头浏览器是没有图形用户界面的Web浏览器。 该程序的行为就像浏览器一样,但是不会显示任何GUI。

无头浏览器通常用于以下情况:-

  • 您有一个中央构建工具,上面没有安装任何浏览器。因此,要在每次构建后进行基本的健全性测试,您可以使用无头浏览器来运行测试。

  • 您要编写一个爬虫程序,该爬虫程序遍历不同页面并收集数据,无头浏览器将是您的选择。因为您真的不在乎打开浏览器。您所需要的只是访问网页。

  • 您想在同一台计算机上模拟多个浏览器版本。在那种情况下,您将要使用无头浏览器,因为它们大多数都支持模拟不同版本的浏览器。我们将很快到达这一点。

无头浏览器是模拟程序,不是您真正的浏览器。

这些无头浏览器中的大多数已经发展到足以像真实浏览器一样进行模拟。仍然您不希望在无头浏览器中运行所有测试。在使用无头浏览器之前,JavaScript是您需要非常小心的地方。不同的浏览器以不同的方式实现JavaScript。尽管JavaScript是一种标准,但是每种浏览器在实现JavaScript的方式上都有其自身的微小差异。在无头浏览器的情况下也是如此。例如,HtmlUnit无头浏览器使用Rihno

JavaScript引擎,而其他任何浏览器都不会使用它。

无头驱动程序的一些示例包括

  • HtmlUnit
  • 幻影
  • 僵尸
  • Watir-webdriver

以上是 Java Selenium:如何在不首先加载页面的情况下获取网页的HTML? 的全部内容, 来源链接: utcz.com/qa/408044.html

回到顶部