pupeteer初體驗


官方文檔: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagescreenshotoptions

puppetter-demo

https://github.com/artiely/puppeteer-demo.git

Puppeteer 介紹

Puppeteer 翻譯是操縱木偶的人,利用這個工具,我們能做一個操縱頁面的人。Puppeteer是一個Nodejs的庫,支持調用Chrome的API來操縱Web,相比較Selenium或是PhantomJs,它最大的特點就是它的操作Dom可以完全在內存中進行模擬既在V8引擎中處理而不打開瀏覽器,而且關鍵是這個是Chrome團隊在維護,會擁有更好的兼容性和前景。

Puppeteer 用處

利用網頁生成PDF、圖片
爬取SPA應用,並生成預渲染內容(即“SSR” 服務端渲染)
可以從網站抓取內容
自動化表單提交、UI測試、鍵盤輸入等
幫你創建一個最新的自動化測試環境(chrome),可以直接在此運行測試用例6.捕獲站點的時間線,以便追蹤你的網站,幫助分析網站性能問題

基礎知識點

  • puppeteer.launch() 創建瀏覽器實例
  • puppeteer.newPage() 創建一個新頁面
  • puppeteer.goto() 進入指定網站
  • page.screenshot() 截屏
  • page.pdf() 輸出為pdf 注意必須是headless=true
  • page.evaluate() 在瀏覽器中執行函數想到與在控制台執行函數 返回promise
  • page.waitFor(selectorOrFunctionOrTimeout[, options[, ...args]]) 等待 可以是等待一段時間,某個函數執行或某個DOM的出現
  • page.click(selector[, options]) 點擊某個元素
  • page.type(selector, text[, options]) 文本輸入
  • page.frames() 獲取當前頁面所有的 iframe,然后根據 iframe 的名字精確獲取某個想要的 iframe
  • iframe.$('.srchsongst') 獲取 iframe 中的某個元素
  • iframe.evaluate() 在瀏覽器中執行函數,相當於在控制台中執行函數,返回一個 Promise
  • Array.from 將類數組對象轉化為對象
  • iframe.$eval() 相當於在 iframe 中運行 document.queryselector 獲取指定元素,並將其作為第一個參數傳遞
  • iframe.$$eval 相當於在 iframe 中運行 document.querySelectorAll 獲取指定元素數組,並將其作為第一個參數傳遞
  • page.emulate() 指定設備
const devices = require('puppeteer/DeviceDescriptors');
const iPhone = devices['iPhone 6'];
await page.emulate(iPhone)

參考
https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagescreenshotoptions
https://cloud.tencent.com/developer/article/1006000
https://www.jianshu.com/p/2f04f9d665ce
http://cnodejs.org/topic/5a4d8d2299d207fa49f5cbbc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM