- I-Puppeteer-core ilawula i-Edge nge-CDP: ukufakwa okungasindi kanye ibhuthini ngqo kusuka kokusebenzisekayo.
- Imikhuba emihle kakhulu: I-Mocha/Chai, Imodeli Yento Yekhasi, ukulinda okusobala nokuthwebula.
- Ukulungisa iphutha ne-CI: okungenakhanda/igobolondo, abalaleli benethiwekhi, ukulondoloza isikhashana, nokuhambisana.
- I-Edge Ecosystem: I-DevTools, i-Playwright, i-WebDriver, i-webhint ne-Origin Testing.

Yenza ngokuzenzakalela ukuhlola kokuphela ukuya I-Microsoft Edge Nge-Puppeteer ukubheja okuphephile namuhla: I-Edge isekelwe ku-Chromium futhi i-Puppeteer ikhuluma ulimi olufanayo (i-CDP), ngakho ilingana njengegilavu yokuhlola okusheshayo, okuthembekile ngokulawulwa kwesiphequluli okunohlamvu oluhle.
Kulo mhlahlandlela sihlukanisa izinwele nakho konke okudingayo: ukufakwa, umehluko phakathi kwe-puppeteer ne-puppeteer-core, ukuqala i-Edge nge-interface nangaphandle kwayo, ukutholwa okusebenzisekayo, izibonelo zamakhodi (i-Mocha/Chai, Imodeli Yento Yekhasi, amafomu, izithombe-skrini), tricks ukulungisa iphutha, ukuhlanganiswa kwe-CI/CD kanye namathuluzi e-ecosystem (DevTools Protocol, Playwright, WebDriver, webhint, Source Testing), kanye namanothi asongayo afana ne-Puppeteer‑Sharp noma iphakheji ye-Dart.
Iyini i-Puppeteer futhi kungani ifanelana ne-Microsoft Edge?
I-Puppeteer yilabhulali ye-Node.js elawula iziphequluli ezisekelwe ku-Chromium (i-Chrome ne-Edge) isebenzisa i-Chrome DevTools Protocol (CDP). Ngokuzenzakalelayo, iqala ngemodi engenamakhanda (ayikho i-UI), kodwa ungabonisa iwindi ukuze ubone ukubulawa bukhoma.
U-Edge ne-Puppeteer basebenzisana ngesandla Ngoba u-Edge wabelana ngesisekelo se-Chromium. Ngakho-ke, nge-puppeteer-core, ungakhomba ukufakwa okukhona kwe-Microsoft Edge, usebenzisa injini yayo yomhlaba wangempela futhi ugweme ukulanda i-Chromium eyengeziwe uma usunayo i-Edge efakiwe.
Uzoyisebenzisela ini nsuku zonke? Ukuhlolwa kwe-GUI, ukukhuhla kokuqukethwe okunamandla, amamethrikhi okusebenza, ukukhiqizwa kwe-PDF/isithombe-skrini, nokuqinisekiswa kokuhlehla okubonakalayo—konke nge-API esezingeni eliphezulu, ezinzile kakhulu.

Ukufakwa: i-puppeteer vs puppeteer-core
Kukhona ama-flavour amabili okufanele kuhlukaniswe: i-puppeteer (iphakheji egcwele elanda i-Chromium) kanye ne-puppeteer-core (i-lightweight, ayilandi isiphequluli futhi ixhuma kokusebenzisekayo okukhona njenge-Edge).
Ukufakwa okunconyiwe kwe-Edge Uma usuvele unaso isiphequluli: sebenzisa i-puppeteer-core ne-npm noma intambo ukuze ulondoloze i-ascargas futhi usebenze ngqo ku-Edge yangakini.
Imiyalo ukufakwa okusheshayo ngomongo: npm i-puppeteer-core noma intambo yengeza i-puppeteer-core, qinisekisa ukuthi i-Node ibuyekeziwe (izinkombandlela ezindala zisho i-v8.9+ kanye nokusekelwa kwe-async/ukulinda kusukela ku-v7.6; kulezi zinsuku i-v14+ iyanconywa).
Qala i-Microsoft Edge ngesinyathelo ngesinyathelo se-puppeteer-core
Ukulandelana okujwayelekile Kumayelana nokudala isibonelo sesiphequluli, ukuvula ikhasi elisha, ukuya ku-URL, nokwenza izenzo (ukuchofoza, ukuthayipha, ukuthwebula). Nge-Edge, udinga nje ukucacisa okulungile okusebenzisekayo.
Isibonelo esincane sokusebenza evula i-Edge, ivakashela ikhasi, futhi igcine isithombe-skrini. Shintsha indlela uma uthanda ukuyithola ngokohlelo (bona isigaba esilandelayo).
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
executablePath: 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe',
headless: true
});
const page = await browser.newPage();
await page.goto('https://www.microsoft.com/edge/download/insider');
await page.screenshot({ path: 'example.png' });
await browser.close();
})();
Uma usebenzisa i-macOS noma Linux, setha i-ExecutablePath endaweni ye-Edge ohlelweni lwakho (ngokwesibonelo, ku-MacOS Canary kungase kube /Applications/Microsoft\ Edge\ Canary.app/Contents/MacOS/Microsoft\ Edge\ Canary).
Thola indlela esebenzisekayo ye-Edge (okwenziwa ngesandla kanye nohlelo)
Indlela elula eyenziwe ngesandla: Thayipha i-edge://version kubha yekheli le-Edge bese ukopisha indlela esebenzisekayo evela kulelo khasi.
Indlela yohlelo ku-Node: Sebenzisa iphakheji yezindlela ezisemaphethelweni ukuze ubuyise indlela elungile ku-OS ngayinye futhi ugweme amanani akhethekile wokubhala amakhodi kanzima.
const edgePaths = require('edge-paths');
const EDGE_PATH = edgePaths.getEdgePath();
// Luego úsalo en el launch
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({ executablePath: EDGE_PATH });
const page = await browser.newPage();
await page.goto('https://www.microsoft.com/edge/download/insider');
await page.screenshot({ path: 'edge-insider.png' });
await browser.close();
})();
Inzuzo yale ndlela cross-platform: ipayipi lakho noma ithimba lakho akudingeki lihlele indlela ngesandla Windows, i-macOS noma i-Linux.
Izindlela zokwenza: ezingenakhanda futhi zixhumene
I-Headless iyashesha futhi ilula, ilungele i-CI/CD. Ungakwazi ukuguqula i-UI eyinhloko ukuze ubone ukuthi kwenzakalani esinyathelweni ngasinye, noma uvule i-slowMo ukuze ulungise ukusebenzisana.
Okusha kuzinguqulo zesimanje: I-Puppeteer ingasebenzisa imodi engenakhanda esekelwe ku-chrome-headless-shell ngokusetha i-headless: 'igobolondo', elithuthukisa ukusebenza ezindaweni ezithile.
const browser = await puppeteer.launch({
executablePath: EDGE_PATH,
headless: 'shell', // o true/false según necesites
args: ['--no-sandbox'] // útil en contenedores
});
Gcina engqondweni ukuhambisana: Eminye imisebenzi efana nokuphrinta ku PDF ingase idinge i-headless yangempela ezinguqulweni ezithile; hlola ipayipi lakho.
I-Ecosystem yamathuluzi ahlobene ku-Edge
- Iphrothokholi ye-DevTools: isisekelo sePuppeteer. Ikuvumela ukuthi usebenzise ithuluzi, uhlole, ulungise iphutha, kanye neziphequluli zephrofayela, okuhlanganisa i-Microsoft Edge, ngokulingana kwe-API neChromium.
- Izilingo Zomsuka: indlela yokuhlola ama-API okuhlola kumasayithi wangempela isikhathi esilinganiselwe, ihlinzeka ngempendulo emaqenjini asezingeni kanye nonjiniyela beziphequluli.
- Umbhali wemidlalo: Enye indlela yezinga eliphezulu enokwesekwa kweziphequluli eziningi nge-API eyodwa, ethembekile, nesheshayo, futhi ehambisana ne-Edge. Iwusizo uma udinga ukumboza iFirefox neWebKit ngokuhambisana.
- I-WebDriver: Izinga lokuzenzela iziphequluli ngokulingisa ukusebenzisana kwabasebenzisi bomhlaba wangempela (amawindi, amathebhu, imicimbi ye-OS). Kuwusizo uma ufuna isiphequluli esiphambanayo kanye nokufakwa kolimi oluhlukene.
- webhint kanye nesandiso sayo se-VS Code: Indlela engcono kakhulu yokuhlanganisa ehlonza ukufinyeleleka okuvamile, ukusebenza, ukusebenzisana kwesiphequluli esiphambene, i-PWA, nezinkinga zokuphepha, futhi ingahlanganiswa ekuhambeni kwakho komsebenzi.
I-Puppeteer vs Selenium: Lapho Ungayikhetha Ngayinye
I-puppeteer ikhanya ngesivinini nokulawula kuziphequluli ze-Chromium, ene-API elula yamaqembu e-JS/Node nokunemba okuphezulu kwesenzo, ilungele ukuhlola okungenakhanda noma ukuklwebheka okuthuthukile.
I-Selenium iletha ububanzi (iziphequluli nezilimi): uma inhloso yakho kuwukuqinisekisa ku-Chrome, Firefox, Safari kanye ne-Edge kanye/noma izinhlelo zeqembu lakho ku-Java, C#, Python noma i-Ruby, ukufakwa kwe-Selenium kanye ne-ecosystem kusalokhu kuyisiqinisekiso.
Futhi ku-Edge ngokuqondile? Uma uqondise i-Edge/Chromium kuphela, iPuppeteer iqondile, iyashesha, futhi izinzile kakhulu; uma i-matrix yakho yokuhambisana idinga iziphequluli ezengeziwe, cabangela i-Selenium noma i-Playwright.
Imikhuba ehamba phambili yokuhlola nge-Mocha/Chai kanye Nemodeli Yento Yekhasi
U-Mocha njengomgijimi wokuhlola kanye no-Chai njengomtapo wolwazi wokugomela bayifanele ngokuphelele i-Puppeteer. Usizo ngaphambiKolunye/NgemvaNgalunye, vula/uvale isiphequluli futhi ugcine ukuhlola kukodwa.
Imodeli Yento Yekhasi (POM) Yakha iphrojekthi ibe amakilasi ekhasini ngalinye, uhlanganise abakhethi kanye nezenzo. Lokhu kuthuthukisa ukugcinwa, ukusebenziseka kabusha, kanye nokufundeka kokuhlolwa.
// pages/HomePage.js
class HomePage {
constructor(page) { this.page = page; }
async title() { return this.page.title(); }
async search(word) {
await this.page.type('input[id=search_form_input_homepage]', word);
await this.page.click('input[type="submit"]');
}
}
module.exports = HomePage;
// pages/ResultsPage.js
class ResultsPage {
constructor(page) { this.page = page; }
async linksCount() {
await this.page.waitForSelector('h2 a');
return await this.page.$$eval('h2 a', as => as.length);
}
}
module.exports = ResultsPage;
Isampula yokuhlola nge-DuckDuckGo okuqinisekisa isihloko futhi usesho lukhiqiza imiphumela, okubonisa iphethini ye-POM isebenza.
const puppeteer = require('puppeteer');
const { expect } = require('chai');
const HomePage = require('./pages/HomePage');
const ResultsPage = require('./pages/ResultsPage');
describe('Búsqueda en DuckDuckGo con POM', () => {
let browser, page;
beforeEach(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('https://duckduckgo.com');
});
afterEach(async () => { await browser.close(); });
it('muestra el título esperado', async () => {
const home = new HomePage(page);
expect(await home.title()).to.include('DuckDuckGo');
});
it('devuelve resultados al buscar', async () => {
const home = new HomePage(page);
await home.search('puppeteer');
const results = new ResultsPage(page);
expect(await results.linksCount()).to.be.greaterThan(0);
});
});
Ithiphu ewusizo- Faka phakathi abakhethiwe bakho emakilasini e-POM futhi ugweme ukuziphindaphinda ezivivinyweni ukuze kube lula ukwenza kabusha lapho i-DOM ishintsha.
Ukuzenzakalela kwamafomu, ukuthwebula kanye nama-PDF
Gcwalisa okokufaka, cindezela izinkinobho futhi uhlole imilayezo Isinkwa nebhotela. Ungathatha izithombe-skrini ngezinyathelo ezibalulekile futhi uqinisekise imibhalo ye-DOM ukuze uqinisekise ukugeleza okuphelele.
Isibonelo esikhuthazwe yi-Angular SPA ngokuqinisekiswa kwefomu, ukuzulazula nezithombe-skrini phakathi kwezikrini:
await page.goto('https://angular-6-registration-login-example.stackblitz.io/register');
await page.click('a.btn.btn-link'); // Cancel
await page.click('a.btn.btn-link'); // Register
await page.click('button.btn.btn-primary'); // Validaciones vacías
await page.screenshot({ path: 'form-feedback.png' });
await page.type('input[formcontrolname="firstName"]', 'Monitor');
await page.type('input[formcontrolname="lastName"]', 'Pruebas');
await page.type('input[formcontrolname="username"]', 'pruebas');
await page.type('input[formcontrolname="password"]', 'MISO4208');
await page.click('button.btn.btn-primary');
await page.waitForSelector('div.alert.alert-success');
await page.type('input[formcontrolname="username"]', 'pruebas');
await page.type('input[formcontrolname="password"]', 'MISO4208');
await page.click('button.btn.btn-primary');
await page.waitForSelector('h1');
await page.screenshot({ path: 'after-login.png' });
Khiqiza i-PDF Iqondile nekhasi.pdf; luwusizo emibikweni noma ebufakazini obubonakalayo bombono othile osendleleni.
Ukulungisa iphutha kanye nokusebenza: Amaqhinga Onga Isikhathi
Sebenzisa waitForSelector ukuvumelanisa ne-DOM futhi ugweme ukulala okungenangqondo. Engeza amalogi nabalaleli benethiwekhi ukuze uhlole ukuhluleka kokulayisha noma amaphutha angu-404/500.
page.on('requestfailed', req => {
console.error('Fallo de solicitud:', req.url(), req.failure()?.errorText);
});
await page.waitForSelector('#mi-elemento', { timeout: 10000 });
Ukulungisa amaphutha okubukwayo: guqula ungabi nakhanda: amanga futhi kancaneMo ukuze uthole imiyalelo yesinyathelo ngesinyathelo; kokungenakhanda kwesimanje, zama i-headless: 'igobolondo' ukuze uthuthukise ukuzinza nokusebenza ku-CI.
Vimba izinsiza ezingadingekile (izithombe, amafonti) uma ukhathalela kuphela i-DOM/umbhalo ukuze unciphise ukusetshenziswa kwamandla futhi usheshise ukuhlolwa kokuklwebha.
Ukuhlanganiswa ku-CI/CD kanye nokubulawa ezitsheni
Ku-CI kulula ukusebenzisa i-headless ne-args njengoba -no-sandbox ezindaweni izimpande noma iziqukathi. Gcina i-Node isesikhathini futhi ucabange ukusebenzisa kabusha i-Chromium/Edge yesistimu ukuze ugweme ukulandwa kwesakhiwo ngasinye.
Amasu amapayipi asebenza kahle: ifanisa ama-suites, i-cache node_modules kanye nefolda yesiphequluli, futhi ihlukanisa ukuhlolwa kwentuthu okusheshayo kusukela ekuhlolweni okunzima kakhulu kokuphela kuya ekupheleni.
Izinsizakalo zefu Abagijimi bohlobo lwe-BrowserStack bangasiza ngamatric esiphequluli esiphambene; ku-Edge/Chromium ehlanzekile, i-Puppeteer kubagijimi be-Linux iyashesha futhi izinzile.
Ukuqapha namamethrikhi phakathi nokuhlolwa
Uma udinga ukubonwa, hlanganisa amamojula aqoqa amamethrikhi okusebenza kwesiphequluli (amanodi e-DOM, izikhathi zokubala kabusha zesitayela, ubude beskripthi/umsebenzi, inqwaba ye-JS namakhodi e-HTTP) futhi uwathumele kuplathifomu yakho ye-APM.
Amathuluzi afana ne-webhint kanye nokusebenza kuma-DevTools asiza ekutholeni izingqinamba, amathuba okuthuthukisa, nezinkinga zokusebenzisana ezingahle zephule uhlolo lwakho ngezikhathi ezithile.
I-Beyond Node: Ama-Wrappers kanye Nokuhambisana Okunwetshiwe
I-Puppeteer-Sharp (C#) ibonise ukuhambisana okuphezulu ne-Edge ngenxa yemvelo yayo esekelwe ku-Chromium; umuzwa womhlaba wangempela ubonisa ukuthi uhlolo oluningi luyaphasa ngokulungiswa okuncane.
Iphakethe le-Dart nayo ikhona, iwusizo uma usebenza naleyo ecosystem: ungakwazi ukuqalisa isiphequluli, uzulazule, futhi wenze ngokuzenzakalelayo izenzo nge-API ejwayelekile.
Ukwandisa Ukuhambisana: Izinguqulo zakamuva ze-Puppeteer zengeze ukusekelwa kwezinye iziphequluli ezifana ne-Firefox futhi zidlulela kumazinga afana ne-WebDriver BiDi, ehlanganisa okuhamba phambili kwe-CDP ne-WebDriver yakudala.
Amanye amathuluzi nezindlela zokuhlola onqenqemeni
Umbhali wemidlalo Inikeza i-automation ye-cross-browser nge-API eyodwa; uma udinga iFirefox/WebKit ngaphezu kwe-Edge, ikusindisa ubuhlungu bekhanda nge-syntax yesimanje, eqinile.
I-WebDriver Ihlala ibalulekile ezimweni zebhizinisi zezilimi eziningi futhi inikeza ukuhlanganiswa okuqinile kuzinhlaka ezikhona, kanye nezinzuzo ekuphathweni kwamafasitela kanye nemicimbi yabasebenzisi.
I-DevTools Protocol ngokuqondileUma udinga izinsimbi zohlamvu oluhle kakhulu (ukulandelelwa, ukungenelela kwenethiwekhi okuthuthukisiwe, ukumbozwa), ungahlanganisa i-CDP ne-Puppeteer ukuze uthole ukuxilonga okusezingeni eliphansi.
Amaresiphi awusizo ane-Edge: ukusuka kuqanda ukuya enanini
Isithombe-skrini esinosayizi ogcwele kusuka ekhasini elibalulekile ukuze ubuyekeze izinguquko ze-UI ezicelweni zokudonsa noma wenze izivivinyo zokuhlehla ezibukwayo.
await page.goto('https://tu-sitio');
await page.screenshot({ path: 'full.png', fullPage: true });
Ukulinda okuhlakaniphile Ukuhlanganisa ukuphequlula nokungenzi lutho kwenethiwekhi kwezinhlelo zokusebenza ezinzima ze-SPA ezilayisha izinsiza ze-cascade.
await page.goto('https://app.tu-sitio', { waitUntil: 'networkidle0' });
Ukukhishwa kwedatha enamandla nge-$$eval futhi uhlole ukuze uguqule i-DOM ibe izakhiwo zedatha ezilungele i-backend yakho.
const items = await page.$$eval('.card', cs => cs.map(c => ({
title: c.querySelector('h2')?.textContent?.trim() || '',
link: c.querySelector('a')?.href || ''
})));
Ukulawula iphutha eliqinile ngokuzama/ukubamba futhi izingodo kucetshiswe ukuqonda ukwehluleka ngezikhathi ezithile futhi kunciphise ukucasuka.
try {
await page.waitForSelector('#checkout', { timeout: 8000 });
} catch (e) {
console.error('Elemento checkout no apareció a tiempo');
await page.screenshot({ path: 'timeout-checkout.png' });
throw e;
}
Lolu hambo lukushiya ulungile ukusuka kokuthiyori uye kugugu: ukuhlolwa okuthembekile, okusheshayo, nokulondolozekayo ku-Microsoft Edge ngokungqubuzana okuncane.
Umbhali oshisekayo ngomhlaba wamabhayithi nobuchwepheshe ngokujwayelekile. Ngiyathanda ukwabelana ngolwazi lwami ngokubhala, futhi yilokho engizokwenza kule bhulogi, ngikubonise zonke izinto ezithakazelisayo kakhulu ngamagajethi, isofthiwe, ihadiwe, izitayela zobuchwepheshe, nokuningi. Inhloso yami ukukusiza ukuthi uzulazule emhlabeni wedijithali ngendlela elula nejabulisayo.