Puppeteer 與其他 UI 測試工具
測試工具
跨平台測試
https://saucelabs.com/beta/dashboard/manual
安裝:
https://github.com/GoogleChrome/puppeteer
文件:https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pageclickselector-options
安裝時他會安裝最新版本的Chromium 所以安裝會比較久
記得加上headless: false 才會打開瀏覽器
const browser = await puppeteer.launch({headless: false});Example:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://example.com');
await page.goto('https://google.com')
const hg = await page.$eval('.gb_P', el => el.innerHTML);
console.log(hg)
await page.type('#lst-ib', 'Hello', {delay: 100});
await page.click('#gsri_ok0')
await page.screenshot({ path: 'example.png' });
})();連線到已經開啟的chrome
因為預設程式結束時chrome也會關閉,所以要用connect的方法。
使用以下方式開啟chrome
之後將以下擷取下來之後用如下方式
將 dom 傳送到 nodejs 端處理
在 evaluate 後 return 出來即可
傳遞參數到 evaluate
因為 evaluate 預設執行環境是瀏覽器,變數抓不到 node 的
https://stackoverflow.com/a/47598159/4622645
傳遞 function
https://stackoverflow.com/a/61336937/4622645
Puppeteer-firefox
https://github.com/GoogleChrome/puppeteer/tree/master/experimental/puppeteer-firefoxgoo
WebDriver.io
selenium-webdriver
https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver
nightmare
(使用electron當作介面)
https://github.com/segmentio/nightmare
異步需要參考如下:
mocha + nightmare範例
https://segment.com/blog/ui-testing-with-nightmare/
phantomjs
http://phantomjs.org/quick-start.html
casper.js
Last updated
Was this helpful?