Schakel de headless-modus uit
Soms is het handig om te zien wat de browser weergeeft. In plaats van te starten in de headless-modus, start u een volledige versie van de browser met behulp van headless: false
:
const browser = await puppeteer.launch({ headless: false });
Vertragen
De slowMo
optie vertraagt de Puppeteer-bewerkingen met het opgegeven aantal milliseconden. Het is een andere manier om te helpen zien wat er aan de hand is.
const browser = await puppeteer.launch({
headless: false,
slowMo: 250, // slow down by 250ms
});
Console-uitvoer vastleggen
Je kunt luisteren naar het console
evenement. Dit is ook handig bij het debuggen van code in page.evaluate()
:
page.on('console', (msg) => console.log('PAGE LOG:', msg.text()));
await page.evaluate(() => console.log(`url is ${location.href}`));
Gebruik debugger in de applicatiecodebrowser
Er zijn twee uitvoeringscontexten: node.js waarop testcode wordt uitgevoerd, en de browser waarin de applicatiecode wordt getest. Hiermee kunt u fouten opsporen in code in de applicatiecodebrowser; de code binnen evaluate()
.
Gebruik {devtools: true}
bij het starten van Puppeteer
const browser = await puppeteer.launch({ devtools: true });
Wijzig de standaardtesttime-out
- grapje:
jest.setTimeout(100000);
- jasmijn:
jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000;
- mokka:
this.timeout(100000);
(vergeet niet om test te wijzigen om de functie te gebruiken en niet '=>' )
Voeg een evaluatie-instructie toe met debugger erin of voeg debugger toe aan een bestaande evaluatie-instructie:
await page.evaluate(() => {
debugger;
});
De test stopt dan met uitvoeren in de bovenstaande evaluatie-instructie en Chromium stopt in de foutopsporingsmodus.
Gebruik debugger in node.js
Hiermee kunt u testcode debuggen. U kunt bijvoorbeeld wachten op await page.click()
in het node.js-script en de klik zien gebeuren in de applicatiecodebrowser.
U kunt await page.click()
niet uitvoeren in de DevTools-console vanwege Chromium-bug 833928 . Als je dus iets wilt uitproberen, moet je het toevoegen aan je testbestand.
- Voeg debugger toe; naar uw test, bijvoorbeeld:
javascript debugger; await page.click('a[target=_blank]');
- Stel headless in op false.
- Voer node
--inspect-brk
uit, bijvoorbeeldnode --inspect-brk node_modules/.bin/jest tests
. - Open in Chrome
chrome://inspect/#devices
en klik opinspect
. - Typ
F8
in de nieuw geopende testbrowser om de testuitvoering te hervatten. - Nu wordt uw debugger geactiveerd en kunt u fouten opsporen in de testbrowser
Schakel uitgebreide logboekregistratie in
Intern DevTools-protocolverkeer wordt geregistreerd met de debug-module onder de Puppeteer-naamruimte.
# Basic verbose logging
env DEBUG="puppeteer:*" node script.js
# Protocol traffic can be rather noisy. This example filters out all Network
# domain messages
env DEBUG="puppeteer:*" env DEBUG_COLORS=true node script.js 2>&1 | grep -v '"Network'
Debug uw poppenspelercode (knooppunt).
Gebruik ndb :
-
npm install -g ndb
(of gebruik npx ). - Voeg een debugger toe aan uw Puppeteer-(knooppunt)code.
- Voeg
ndb
(ofnpx ndb
) toe vóór uw testopdracht. Bijvoorbeeld:ndb jest
ofndb mocha
(ofnpx ndb jest
/npx ndb mocha
). - debug je test in chroom als een baas!