Puppeteer Web爬取和測試自動化– Puppeteer教程3的優秀學習指南

現在,Puppeteer 作為一種網頁抓取工具越來越受到關注。 由於簡單,作為開源工具的可用性和開發單頁應用程序的能力,Puppeteer 越來越受歡迎。 在開始學習 Puppeteer 網頁抓取工具之前,我們應該對命令行、Javascript 和 HTML DOM 結構有基本的了解。 這 木偶教程 已分為幾篇文章,在下面的目錄中指定。

木偶教程

Tosca教程1: 木偶戲概述

托斯卡 教程 Tutorial #2: 木偶環境變量

托斯卡 教程 Tutorial #3: Puppeteer Web抓取和Puppeteer測試自動化概述

托斯卡 教程 Tutorial #4: 安裝Puppeteer 

在這篇文章中 木偶教程,我們將通過示例和 Puppeteer 測試自動化概述來討論 Puppeteer Web Scraping。 

木偶網頁抓取

從任何網頁提取數據的過程稱為網頁抓取。 網頁抓取有兩個步驟。 首先,它獲取網頁,然後提取數據。 提取數據後,我們可以將其用於任何API或將其存儲在CSV文件中。 

Puppeteer是支持Google Chrome或Chromium瀏覽器的Web抓取的最佳工具之一。 以下示例詳細說明了偽造的網絡抓取操作– 

Puppeteer基本Web爬網示例:

步驟1# Puppeteer在Node JS庫上工作。 因此,第一步是在編寫用於Web抓取的腳本之前,包括偽造者庫。

const puppeteerObj = require("puppeteer");

步驟2# 包含Puppeteer類之後,我們需要使用await關鍵字編寫一個異步函數。 因為Puppeteer使用promises,所以它是必需的。 然後,調用Puppeteer.launch()方法來調用瀏覽器,並調用newPage()方法來創建網頁實例。

const browserWeb = await puppeteerObj.launch();
const pageWeb = await browserWeb.newPage();

步驟3# 現在,調用page.goto()方法以提供所需網站的URL。

await pageWeb.goto("https://lambdageeks.com/");

步驟4# 使用方法page.evaluate()捕獲任何特定元素的文本(在本示例中,我們將捕獲標題文本)。 

const data = await pageWeb.evaluate(() => {   
const header = document.querySelector(".uabb-heading-text").innerText;
return { header };

在接下來的教程中,我們將討論如何從網絡屏幕上識別任何對象。

Puppeteer教程-Puppeteer Web爬網
Puppeteer教程– Puppeteer Web爬網

步驟5# 在最後一步,我們需要處理數據,然後關閉網頁。 完整的Puppeteer Web抓取代碼如下所示–

const puppeteer = require("puppeteer");

async function scrap() {
  // Launch the browser
  const browserApp = await puppeteer.launch();
  // Create a page instance
  const pageApp = await browserApp.newPage();
  // invoke the web page for scraping
  await pageApp.goto("https://lambdageeks.com/");

  // Select any web element
const data = await pageApp.evaluate(() => {   
const header = document.querySelector(".uabb-heading-text").innerText;
return { header };

// Here we can do anything with this data. Here displaying the data
console.log(header);

 //We close the browser
  await browserApp.close();
}

Scrap();

步驟6# 現在,我們可以使用以下命令執行此偽造的Web抓取代碼:  節點index.js

備註: 在下一篇文章“安裝Puppeteer”中,我們將討論Puppeteer的安裝設置並執行上面的Puppeteer Web Scraping代碼。

木偶測試自動化概述

除了抓取網頁外,Puppeteer還具有執行以下活動的功能,

  • 捕獲網頁的屏幕快照。
  • 我們可以將網頁屏幕另存為pdf文件。
  • 可以實現手動步驟的自動化以執行UI測試。

因此,結合以上所有功能,我們可以使用Puppeteer進行測試自動化。 要了解Puppeteer測試自動化,首先,我們需要熟悉軟件測試。

測試概述:

需要進行測試以確保所有軟件要求均得到滿足,而不會出現任何問題。 從軟件開發過程的開始就可以使用不同類型的測試週期。 可以手動或通過自動化方法來測試軟件。

軟件測試的目的是–

  • 驗證產品質量。
  • 在生產部署之前查找產品的錯誤。
  • 滿足要求檢查。
  • 測試產品的性能。

測試的類型在這裡說明-

單元測試 –開發人員負責在代碼開發階段執行單元測試。

整合測試 –集成軟件產品的不同組件之後,需要進行此測試。 主要目的是確保所有接口均正常運行。

系統測試 –這是一項詳細的測試,必須在集成後進行,以確保滿足所有要求。

用戶驗收測試 –這也是產品的最終用戶必須執行的詳細測試,以確保質量。

回歸測試 –需要確保在任何軟件增強過程中核心業務流程都能正常運行。

測試自動化的優勢:

  • 減少執行週期。
  • 避免人為錯誤的機會。
  • 最小化測試執行工作。
  • 快速軟件發布。
  • 增加測試範圍以降低風險。
  • 能夠執行並行執行。

為什麼選擇木偶?

在Chrome瀏覽器中執行的大多數手動操作都可以使用Puppeteer自動執行。 因此,Puppeteer是快速簡便地在Web應用程序上進行單元測試的不錯選擇。 

的局限性 Puppeteer 作為自動化測試工具是——

  • 僅支持Chrome和Chromium瀏覽器。
  • 無法進行Coss瀏覽器測試。
  • 手機測試無法完成。

無頭Chrome測試:

無頭瀏覽器意味著Puppeteer正在與作為後台應用程序的chrome瀏覽器進行交互,這意味著chrome UI在屏幕上不可見。 因此,無頭鉻測試意味著自動化測試將在隱藏的瀏覽器中執行。 此外,在進行無頭鉻測試之後,木偶戲能夠正確捕獲Web屏幕。

木偶vs硒

木偶教程-木偶vs硒
木偶戲 教程 – Puppeteer vs Selenium

下面說明了Puppeteer和Selenium作為自動化測試工具之間的比較-

  • 編程語言支持– Puppeteer僅支持JavaScript,而Selenium支持Java,Python,Node.js和C#語言。
  • 瀏覽器支持– Puppeteer僅適用於Chrome或Chromium瀏覽器,但Selenium也支持Chrome,Mozilla,Safari,IE,Opera瀏覽器。
  • 社區支持– 社區支持僅限於Puppeteer的Google網上論壇,GitHub和Stack Overflow。 但是對於Selenium,可以在多個論壇上獲得廣泛的社區支持。
  • 執行速度– Puppeteer腳本的執行比Selenium的執行快。
  • 安裝和設置– 木偶戲的安裝和設置是一個更簡單的過程。
  • 跨平台支持– Puppeteer不支持它,但是Selenium支持。
  • 錄音– 錄製功能在Puppeteer中不可用。 但是此功能可用於Selenium IDE。
  • 屏幕截圖– Puppeteer可以將屏幕截圖用作圖像或pdf格式,其中Selenium僅支持圖像格式。
  • 測試平台支持——Puppeteer 僅支持 Web 瀏覽器,但 Selenium 可以自動化 Web 和 帶有 Appium 的移動設備.
  • 編碼技巧– Puppeteer Selenium Web驅動程序需要它,而Selenium IDE則不需要。

基於上述比較,我們可以得出結論,當我們必須對任何需要快速靈活解決方案的 Web 應用程序執行單元級測試時,Puppeteer 將是最佳選擇。 當需要移動應用程序和跨平台時,另一個工具 Selenium 將是更好的選擇 應用測試。 點擊 這裡 向LambdaGeeks學習硒。

結論:

在這篇介紹性文章中 木偶教程,我們已經了解了 Puppeteer Web Scraping 和 Puppeteer 測試自動化概述。 我們將在下一篇 Puppeteer 文章中了解安裝 Puppeteer 和執行小腳本的分步指南。 請點擊 這裡 訪問該Puppeteer教程的參考門戶。

發表評論

您的電子郵件地址將不會被發表。 必填字段標 *

回到頁首