一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

puppeteer自動(dòng)化測(cè)試系列之 一

 15所 2022-04-13

一、Puppeteer 介紹

Puppeteer 翻譯是操縱木偶的人,利用這個(gè)工具,我們能做一個(gè)操縱頁(yè)面的人。Puppeteer是一個(gè)Nodejs的庫(kù),支持調(diào)用Chrome的API來(lái)操縱Web,相比較Selenium或是PhantomJs,它最大的特點(diǎn)就是它的操作Dom可以完全在內(nèi)存中進(jìn)行模擬既在V8引擎中處理而不打開(kāi)瀏覽器,而且關(guān)鍵是這個(gè)是Chrome團(tuán)隊(duì)在維護(hù),會(huì)擁有更好的兼容性和前景。

二、Puppeteer 用處

  • 利用網(wǎng)頁(yè)生成PDF、圖片
  • 爬取SPA應(yīng)用,并生成預(yù)渲染內(nèi)容(即“SSR” 服務(wù)端渲染)
  • 可以從網(wǎng)站抓取內(nèi)容
  • 自動(dòng)化表單提交、UI測(cè)試、鍵盤(pán)輸入等
  • 幫你創(chuàng)建一個(gè)最新的自動(dòng)化測(cè)試環(huán)境(chrome),可以直接在此運(yùn)行測(cè)試用例6.捕獲站點(diǎn)的時(shí)間線,以便追蹤你的網(wǎng)站,幫助分析網(wǎng)站性能問(wèn)題

三、puppeteer環(huán)境準(zhǔn)備

1、Puppeteer環(huán)境要求

1.1、Puppeteer要求node版本不低于v6.4.0,但是async/await只在Node v7.6.0或更高的版本支持。

1.2、需要最近版本的Chromium瀏覽器

2、Puppeteer環(huán)境準(zhǔn)備

1.Node.js 安裝配置

2.Puppeteer安裝

通過(guò)npm安裝:npm install puppeteer --save

由于封網(wǎng),直接下載 Chromium 會(huì)失敗,可以先阻止下載 Chromium 然后再手動(dòng)下載它

  1. # 安裝命令
  2. npm i puppeteer --save
  3. # 錯(cuò)誤信息
  4. ERROR: Failed to download Chromium r515411! Set 'PUPPETEER_SKIP_CHROMIUM_DOWNLOAD' env variable to skip download.
  5. # 設(shè)置環(huán)境變量跳過(guò)下載 Chromium
  6. set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 # 或者可以這樣干,只下載模塊而不build npm i --save puppeteer --ignore-scripts # 成功安裝模塊 + puppeteer@0.13.0 added 1 package in 1.77s
手動(dòng)下載 Chromium,下載完后將壓縮包解壓,會(huì)有個(gè) Chromium.app,將其放在你喜歡的目錄下,例如 /Users/huqiyang/Documents/project/z/chromium/Chromium.app。正常安裝包后 Chromium.app 會(huì)在 .local-chromium

Tip:下載 Chromium 失敗解決辦法

  • 更換國(guó)內(nèi)Chromium
  1. PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org
  2. npm i puppeteer
  • 或者用 cnpm 安裝
  1. npm install -g cnpm --registry=https://registry.npm.taobao.org
  2. cnpm i puppeteer

2、jest環(huán)境

安裝 Jest:npm install --save-dev jest

四、puppeteer自動(dòng)化初試

初試 Puppeteer,截個(gè)圖吧

知識(shí)點(diǎn)

  • puppeteer.launch 啟動(dòng)瀏覽器實(shí)例
  • browser.newPage() 創(chuàng)建一個(gè)新頁(yè)面
  • page.goto 進(jìn)入指定網(wǎng)頁(yè)
  • page.screenshot 截圖
  1. const puppeteer = require('puppeteer');
  2. (async () => {
  3. const browser = await (puppeteer.launch({
  4. // 若是手動(dòng)下載的chromium需要指定chromium地址, 默認(rèn)引用地址為 /項(xiàng)目目錄/node_modules/puppeteer/.local-chromium/
  5. executablePath: '/Users/huqiyang/Documents/project/z/chromium/Chromium.app/Contents/MacOS/Chromium',
  6. //設(shè)置超時(shí)時(shí)間
  7. timeout: 15000,
  8. //如果是訪問(wèn)https頁(yè)面 此屬性會(huì)忽略https錯(cuò)誤
  9. ignoreHTTPSErrors: true,
  10. // 打開(kāi)開(kāi)發(fā)者工具, 當(dāng)此值為true時(shí), headless總為false
  11. devtools: false,
  12. // 關(guān)閉headless模式, 不會(huì)打開(kāi)瀏覽器
  13. headless: false
  14. }));
  15. const page = await browser.newPage();
  16. await page.goto('https://www.jianshu.com/u/40909ea33e50');
  17. await page.screenshot({
  18. path: 'jianshu.png',
  19. type: 'png',
  20. // quality: 100, 只對(duì)jpg有效
  21. fullPage: true,
  22. // 指定區(qū)域截圖,clip和fullPage兩者只能設(shè)置一個(gè)
  23. // clip: {
  24. // x: 0,
  25. // y: 0,
  26. // width: 1000,
  27. // height: 40
  28. // }
  29. });
  30. browser.close();
  31. })();

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本亚洲欧美男人的天堂| 亚洲国产欧美精品久久 | 在线观看视频成人午夜| 国产精品福利一级久久| 黑丝国产精品一区二区| 人妻精品一区二区三区视频免精| 国产精品免费视频专区| 精品少妇人妻av免费看| 玩弄人妻少妇一区二区桃花| 国内胖女人做爰视频有没有| 日韩亚洲精品国产第二页| 欧美精品久久99九九| 亚洲欧美一二区日韩高清在线| 国产三级欧美三级日韩三级| 99久久精品免费精品国产| 国产又大又猛又粗又长又爽| 国产日韩精品激情在线观看| 黄片免费观看一区二区| 中文字幕精品一区二区三| 九九九热在线免费视频| 日本午夜一本久久久综合| 国产精品午夜小视频观看| 又色又爽又黄的三级视频| 欧美日韩一区二区三区色拉拉| 久久精品国产在热久久| 91麻豆精品欧美一区| 偷拍洗澡一区二区三区| 日本女优一区二区三区免费| 午夜精品国产精品久久久| 亚洲中文字幕日韩在线| 国产高清在线不卡一区| 国产一区一一一区麻豆| 久久99青青精品免费观看| 亚洲天堂久久精品成人| 国产欧美亚洲精品自拍| 91久久精品中文内射| 国产av精品一区二区| 国产精品涩涩成人一区二区三区| 人妻熟女中文字幕在线| 国产又粗又猛又大爽又黄| 好骚国产99在线中文|