Gözetimsiz modu kapat
Bazen tarayıcının ne görüntülediğini görmek yararlıdır. Gözetimsiz modda başlatmak yerine, headless: false
ile tarayıcının tam sürümünü başlatın:
const browser = await puppeteer.launch({ headless: false });
Yavaşlatma
slowMo
seçeneği, Puppeteer işlemlerini belirtilen milisaniyelik süre kadar yavaşlatır. Bu, neler olup bittiğini görmenize yardımcı olacak başka bir yol.
const browser = await puppeteer.launch({
headless: false,
slowMo: 250, // slow down by 250ms
});
Konsol çıkışını yakalama
console
etkinliğini dinleyebilirsiniz. Bu, page.evaluate()
içindeki kodda hata ayıklarken de kullanışlıdır:
page.on('console', (msg) => console.log('PAGE LOG:', msg.text()));
await page.evaluate(() => console.log(`url is ${location.href}`));
Uygulama kodu tarayıcısında hata ayıklayıcıyı kullan
İki yürütme bağlamı vardır: test kodunu çalıştıran Node.js ve test edilen uygulama kodunu çalıştıran tarayıcı. Bu işlem, uygulama kodu tarayıcısındaki, evaluate()
içindeki koddaki kodda hata ayıklamanızı sağlar.
Puppeteer'ı başlatırken {devtools: true}
kodunu kullanın
const browser = await puppeteer.launch({ devtools: true });
Varsayılan test zaman aşımını değiştir
- jest:
jest.setTimeout(100000);
- yasemin:
jasmine.DEFAULT_TIMEOUT_INTERVAL = 100000;
- mocha:
this.timeout(100000);
(testi, işlev yerine '=>' kullanılacak şekilde değiştirmeyi unutmayın.)
Hata ayıklayıcının bulunduğu bir değerlendirme ifadesi ekleyin veya mevcut bir değerlendirme ifadesine hata ayıklayıcı ekleyin:
await page.evaluate(() => {
debugger;
});
Daha sonra test, yukarıdaki değerlendirme ifadesinde yürütülmeyi durdurur ve Chromium, hata ayıklama modunda durur.
Node.js'de hata ayıklayıcıyı kullanma
Bu sayede test kodundaki hataları ayıklayabilirsiniz. Örneğin, Node.js komut dosyasında await page.click()
öğesinin üzerine gelebilir ve tıklama işleminin uygulama kodu tarayıcısında gerçekleştiğini görebilirsiniz.
Chromium hatası 833928 nedeniyle await page.click()
aracını Geliştirici Araçları konsolunda çalıştıramazsınız.
Dolayısıyla, bir şey denemek istiyorsanız onu test dosyanıza eklemeniz gerekir.
- Testinize hata ayıklayıcı ekleyin. Örneğin:
javascript debugger; await page.click('a[target=_blank]');
- Gözetimsiz özelliğini false olarak ayarlayın.
--inspect-brk
düğümünü çalıştırın (ör.node --inspect-brk node_modules/.bin/jest tests
).- Chrome'da
chrome://inspect/#devices
uygulamasını açın veinspect
düğmesini tıklayın. - Testin yürütülmesine devam etmek için yeni açılan test tarayıcısında
F8
yazın. - Hata ayıklayıcınız tıklandıktan sonra test tarayıcısında hata ayıklayabilirsiniz
Ayrıntılı günlük kaydını etkinleştir
Dahili DevTools protokol trafiği, hata ayıklama modülüyle Puppeteer ad alanı altında günlüğe kaydedilir.
# 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'
Puppeteer (düğüm) kodunuzda hata ayıklama
ndb'yi kullanın:
npm install -g ndb
(veya npx kullanın).- Puppeteer (düğüm) kodunuza hata ayıklayıcı ekleyin.
- Test komutunuzun önüne
ndb
(veyanpx ndb
) ekleyin. Örneğin:ndb jest
veyandb mocha
(veyanpx ndb jest
/npx ndb mocha
). - Chromium'da testinizin hatalarını ayıklayın!