ডিবাগ Puppeteer

হেডলেস মোড বন্ধ করুন

কখনও কখনও ব্রাউজারটি কী প্রদর্শন করছে তা দেখতে দরকারী। হেডলেস মোডে লঞ্চ করার পরিবর্তে, headless: false : ব্যবহার করে ব্রাউজারের একটি সম্পূর্ণ সংস্করণ চালু করুন।

const browser = await puppeteer.launch({ headless: false });

এটাকে মন্থর করুন

slowMo বিকল্পটি মিলিসেকেন্ডের নির্দিষ্ট পরিমাণে পাপেটিয়ার ক্রিয়াকলাপকে ধীর করে দেয়। এটি কি ঘটছে তা দেখতে সাহায্য করার আরেকটি উপায়।

const browser = await puppeteer.launch({
  headless: false,
  slowMo: 250, // slow down by 250ms
});

কনসোল আউটপুট ক্যাপচার

আপনি console ইভেন্টের জন্য শুনতে পারেন. page.evaluate() এ কোড ডিবাগ করার সময় এটিও কার্যকর :

page.on('console', (msg) => console.log('PAGE LOG:', msg.text()));

await page.evaluate(() => console.log(`url is ${location.href}`));

অ্যাপ্লিকেশন কোড ব্রাউজারে ডিবাগার ব্যবহার করুন

দুটি এক্সিকিউশন প্রসঙ্গ রয়েছে: node.js যেটি টেস্ট কোড চলছে এবং ব্রাউজারে চলমান অ্যাপ্লিকেশন কোড পরীক্ষা করা হচ্ছে। এটি আপনাকে অ্যাপ্লিকেশন কোড ব্রাউজারে কোড ডিবাগ করতে দেয়; evaluate() এর ভিতরের কোড।

Puppeteer চালু করার সময় {devtools: true} ব্যবহার করুন

const browser = await puppeteer.launch({ devtools: true });

ডিফল্ট পরীক্ষার সময়সীমা পরিবর্তন করুন

ভিতরে ডিবাগার সহ একটি মূল্যায়ন বিবৃতি যোগ করুন বা বিদ্যমান মূল্যায়ন বিবৃতিতে ডিবাগার যুক্ত করুন:

await page.evaluate(() => {
  debugger;
});

তারপরে পরীক্ষাটি উপরের মূল্যায়ন বিবৃতিতে কার্যকর করা বন্ধ করে এবং Chromium ডিবাগ মোডে থামে।

node.js এ ডিবাগার ব্যবহার করুন

এটি আপনাকে পরীক্ষার কোড ডিবাগ করতে দেয়। উদাহরণস্বরূপ, আপনি node.js স্ক্রিপ্টে await page.click() ধাপে ধাপে যেতে পারেন এবং অ্যাপ্লিকেশন কোড ব্রাউজারে ক্লিকটি ঘটতে দেখতে পারেন।

Chromium বাগ 833928 এর কারণে আপনি DevTools কনসোলে await page.click() চালাতে পারবেন না। সুতরাং আপনি যদি কিছু চেষ্টা করতে চান তবে আপনাকে এটি আপনার পরীক্ষার ফাইলে যুক্ত করতে হবে।

  1. ডিবাগার যোগ করুন; আপনার পরীক্ষায়, উদাহরণস্বরূপ: javascript debugger; await page.click('a[target=_blank]');
  2. হেডলেসকে মিথ্যাতে সেট করুন।
  3. নোড চালান --inspect-brk , উদাহরণস্বরূপ, node --inspect-brk node_modules/.bin/jest tests
  4. ক্রোমে chrome://inspect/#devices খুলুন এবং inspect ক্লিক করুন।
  5. নতুন খোলা পরীক্ষা ব্রাউজারে, পরীক্ষা সম্পাদন পুনরায় শুরু করতে F8 টাইপ করুন।
  6. এখন আপনার ডিবাগার হিট হয়েছে এবং আপনি পরীক্ষা ব্রাউজারে ডিবাগ করতে পারেন

ভার্বোস লগিং সক্ষম করুন

অভ্যন্তরীণ DevTools প্রোটোকল ট্র্যাফিক Puppeteer নামস্থানের অধীনে ডিবাগ মডিউল দিয়ে লগ করা হয়েছে।

# 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 (নোড) কোড ডিবাগ করুন

ndb ব্যবহার করুন:

  • npm install -g ndb (বা npx ব্যবহার করুন)।
  • আপনার Puppeteer (নোড) কোডে একটি ডিবাগার যোগ করুন।
  • আপনার পরীক্ষার কমান্ডের আগে ndb (বা npx ndb ) যোগ করুন। যেমন: ndb jest বা ndb mocha (বা npx ndb jest / npx ndb mocha )।
  • বসের মতো ক্রোমিয়ামের ভিতরে আপনার পরীক্ষা ডিবাগ করুন!